无法获得POST值

时间:2014-08-12 10:05:18

标签: php arrays post

为什么我的echo不会打印值1

<dl>
    <input type='checkbox' class='tinyField' name="informTktUpdate['hd']" value="1" /> Inform user by email
</dl>
<dl>
    <input type='checkbox' class='tinyField' name="informTktUpdate['prog']" value="1"  /> Inform programmer by email
</dl>

echo ($_POST['informTktUpdate']['prog']);
echo ($_POST['informTktUpdate'][prog]);

我试图删除引号:

name="informTktUpdate[prog]"

但仍然没有...

4 个答案:

答案 0 :(得分:1)

从您的问题来看,这似乎并不完全清楚,因为:

  1. 您正试图在将表单发送到浏览器的页面中获取表单提交的结果,而不是提交表单的页面和/或
  2. 未选中该复选框(默认情况下不是,但您可以在UI中更改)。只有在选中时才会获得该值,这是您如何判断它是否被检查的结果。

答案 1 :(得分:1)

您的HTML字段包含以下名称:

informTktUpdate['hd']
informTktUpdate['prog']

因此,您需要将这些引号添加到键名:

$_POST["informTktUpdate"]["'hd'"]
$_POST["informTktUpdate"]["'prog'"]

由于name属性中的引号只会增加不必要的冗长,我建议你先简单地删除它们。记住HTML不是PHP。

另外,请注意您可以使用任何常规转储功能来检查您的变量,无需猜测:

var_dump($_POST);
array(1) {
  ["informTktUpdate"]=>
  array(2) {
    ["'hd'"]=>
    string(1) "1"
    ["'prog'"]=>
    string(1) "1"
  }
}

最后但并非最不重要的是,此代码:

echo ($_POST['informTktUpdate'][prog]);

......应该触发通知。您没有看到它表明您尚未配置PHP开发框以显示错误消息。如果你解决这个问题,进一步的编码应该更加集中。

答案 2 :(得分:0)

在HTML中,无需在输入名称(')

中的[]参数内单引attribute

更改

<input type='checkbox' class='tinyField' name="informTktUpdate['hd']" value="1" />

<input type='checkbox' class='tinyField' name="informTktUpdate[hd]" value="1" />

尝试服务器端

echo $_POST['informTktUpdate']['prog'];

答案 3 :(得分:0)

尝试更改

<input type='checkbox' class='tinyField' name="informTktUpdate['prog']" value="1" />

 <input type='checkbox' class='tinyField' name="informTktUpdate[prog]" checked="checked" value="1" />

默认情况下检查,然后echo $_POST['informTktUpdate']['prog'];