Php 为什么我无法获取POST值?

Php 为什么我无法获取POST值?,php,forms,Php,Forms,这是我的表单,它是动态生成的: <form action='index.php?direction=saveUserPreferences' method='post'> <label>Office space<input type='checkbox' name='userInterest[]' value='1' id='1'></label> <label>Grants<input type='checkbox' name=

这是我的表单,它是动态生成的:

<form action='index.php?direction=saveUserPreferences' method='post'>
<label>Office space<input type='checkbox' name='userInterest[]' value='1' id='1'></label>
<label>Grants<input type='checkbox' name='userInterest[]' value='2' id='2' checked></label>
<label>Loans<input type='checkbox' name='userInterest[]' value='3' id='3'></label>
<label>Events<input type='checkbox' name='userInterest[]' value='4' id='4' checked></label>
<label>Connecting<input type='checkbox' name='userInterest[]' value='5' id='5' checked></label>
<label>Office administration<input type='checkbox' name='userInterest[]' value='6' id='6' checked></label>
<label>TAX<input type='checkbox' name='userInterest[]' value='7' id='7' checked></label>
<label>Self employment<input type='checkbox' name='userInterest[]' value='8' id='8' checked></label>
<label>Start up<input type='checkbox' name='userInterest[]' value='9' id='9' checked></label>
<label>Banks<input type='checkbox' name='userInterest[]' value='10' id='10' checked></label>
<input type='text' name='name' id='name'/>
<input type='submit' name='sendData' value='Save'/>
我试图检查是否设置了post等,但我无法从post获取数组

我还有一个登录表单,它指向同一个控制器和另一个函数,运行良好。所以我知道控制器文件可以并且确实接收post值

但出于某种奇怪的原因,对于这种特殊形式,我无法得到任何值。我已经查阅了另一个问题和答案,但无法使这件事起作用。我还熟悉:

根据该解决方案,我得到了未识别的索引错误。有什么我错过的吗

提前感谢您提供的任何提示和窍门;)

2015年3月8日
嘿,又来了。我不知道这是否对某人有所帮助,我想告诉他最新情况。正如您所知,我将从页面中什么也得不到,也就是说,当我在php文件中回显值时,将什么都没有。然而,在firebug和chrome开发者工具(在网络部分的标题和响应部分)中,我能够看到实际的响应。所以我所做的是:在数据库中创建一个演示表,并尝试将表单中应该看到的值插入数据库。奇怪的是,它确实起了作用。所以,不要问我怎么可能,因为我还不知道。所以我决定根据开发者工具和firebug的反应来工作。我的数据的当前路径是这样的。视图->控制器->模型(将数据发布到数组变量)->dao类->数据库。好的,谢谢大家观看和评论。谢谢

在到达控制器之前是否有重定向?POST数据只存在于下一个请求中,因此如果您提交到/redirect.php并将您带到/controller.php,$\u POST将为空

而且我觉得你的复选框不对。普通复选框如下所示:

<input type="checkbox" name="vehicle" value="Bike"> I have a bike
我有一辆自行车
因此,该名称是复选框“是关于”的,该值是它自己的唯一值。[]仅用于选择框。

好的,控制器文件是数据到达的下一个文件。我对此感到困惑,因为我的登录表单是以完全相同的方式构造的,并且它确实有效。也就是说,我确实从登录表单接收post数据。谢谢你在再次审视这一点之后,你是对的。数据到达index.php,然后进入控制器。但是,来自登录的数据也是以同样的方式发布和传输的,并且在控制器中可以访问post数据。。。奇怪;)然后首先检查$\u POST是否包含index.php中的数据。如果index.php只是重定向到另一个方法就没有问题了,只是当您使用header('Location:url')时,如果您单击我的问题中的链接(有人推荐),您将看到[]可以与复选框一起使用。我希望这些是一个数组。这些价值观是独一无二的。这些是db中这些兴趣的ID。每个都有不同的值;然后是html表单。注意,没有“saveUserPreferences”函数。它的工作原理与您预期的一样,并在按下“保存”时显示表单数据。要开始调试您的代码,我将像这里一样,确保index.php开始运行。然后我将确保执行正确的控制器代码。顺便说一句,表单需要一个结束标记,然而,这并不是浏览器添加它时出现任何问题的原因。谢谢你的意见。我的索引文件获取数据并发布到将数据移动到模型的控制器。我可以在firebug中看到这些数据。这是我的模型函数:公共函数saveUserInterests(){echo“这是模型

“foreach($_POST['userInterest']作为$row){echo”“,”;}}}在firebug中我看到:这是模型2、4、5、6、7、8、9、10,所以我看到数据传递正确。好的,模型echo被显示,所以最终正确的代码被执行。这真是一个奇怪的问题……以下是屏幕抓图:和
<input type="checkbox" name="vehicle" value="Bike"> I have a bike