«Неопределенный индекс» при цитировании ключа массива - PullRequest
3 голосов
/ 02 июня 2010

У меня есть форма в index.php

<?php 
  echo '<form action="update_act.php" method="POST">';
  echo '<input type="submit" name="'.$row['act_name'].'" value="edit">
  echo </form>
?>

Здесь $ row ['act_name'] - это значение, полученное из базы данных.

Мой файл update_act.php

<?php
   echo "Old Activity Name : ".$_POST['$row[\'act_name\']'];
?>

Но я получаю сообщение об ошибке Undefined index: $row['act_name'] in C:\wamp\www\ps\activity\update_act.php.

Я хочу иметь разные имена для разных submits, но яЯ не могу получить его значение на другой странице.Есть ли способ для этого?

Ответы [ 4 ]

3 голосов
/ 02 июня 2010

Я точно не знаю, что вы пытаетесь сделать, но если значение переменной $ row ['act_name'] одинаково в обоих случаях (страница формы и скрипт обновления), вы можете получить доступ к к этому так:

echo "Old Activity Name : ".$_POST[$row['act_name']];
2 голосов
/ 02 июня 2010

PHP заменяет только переменные, заключенные в двойные кавычки ". То, что вы хотите:

echo "Old Activity Name : ". $_POST[$row['act_name']]

Но вся ваша форма не имеет никакого смысла. Вывод, который вы получите:

Old Activity Name : edit

потому что это значение кнопки отправки.

Не могли бы вы уточнить свой вопрос, чего вы хотите достичь? Вот некоторые мысли с моей стороны:

Может быть, то, что вы хотите, больше похоже на:

<form action="update_act.php" method="POST">;
    <input type="hidden" name="act_name" value="<?php echo $row[act_name] ?>" />
    <input type="submit" name="submit" value="edit">
</form>

// ---- other file ---

<?php
   echo "Old Activity Name : ".$_POST['act_name'];
?>

Почему вы хотите, чтобы у были разные имена для разных отправок ?
Хотите ли вы провести различие между различными действиями? Если это так, вам будет проще, если у кнопок одинаковое имя, и вы сверяете их значения, например ::

<form action="update_act.php" method="POST">;
    <input type="submit" name="submit" value="edit">
</form>

<form action="update_act.php" method="POST">;
    <input type="submit" name="submit" value="delete">
</form>

, а затем

<?php 
if($_POST['submit'] == 'edit') {

}
else if ($_POST['submit'] == 'delete') {

}
2 голосов
/ 02 июня 2010

Использование $_POST[$row['act_name']].

0 голосов
/ 02 июня 2010
   echo "Old Activity Name : ".$_POST['$row[\'act_name\']'];

должно быть

   echo "Old Activity Name : ".$_POST["$row[act_name]"];

или

   echo "Old Activity Name : ".$_POST[$row[act_name]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...