引用数组键时出现“未定义的索引”

时间:2010-06-02 09:03:05

标签: php forms

我在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 个答案:

答案 0 :(得分:3)

我不知道你要做什么,但如果变量$ row ['act_name']的值在两种情况下都是相同的(表单页面和更新脚本),那么你可以访问就这样:

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

答案 1 :(得分:2)

使用$_POST[$row['act_name']]

答案 2 :(得分:2)

PHP only substitutes variables enclosed in double quotes "。你想要的是:

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') {

}

答案 3 :(得分:0)

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

应该是

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

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