我从一些POST数据构建了以下数组,我通过print_r
获取了这个数据print_r($_POST['options']);
Array (
[0] => Array (
['member_id'] => 6
['leadership_id'] => 0 )
[1] => Array (
['member_id'] => 7
['leadership_id'] => 1 )
[2] => Array (
['member_id'] => 2
['leadership_id'] => 2 ) )
这对我来说似乎是正确的,但如果我试图在foreach中查看它:
foreach ($_POST['options'] as $test) {
echo $test['member_id'];
echo $test['leadership_id'];
}
这只会让我回到以下错误:
Notice: Undefined index: member_id
Notice: Undefined index: leadership_id
它似乎每次都会通过循环发送错误,因此它显然没有被正确引用。
我认为foreach会将$ test循环通过它作为$ test [0] [' member_id'],但这似乎是错误的,因为它的响应方式。
让它起作用的东西让我想到试验另一个循环:
foreach ($_POST['options'] as $tmp) {
foreach ($tmp AS $opt) {
echo $opt['member_id'];
echo $opt['leadership_id'];
}
}
我认为第一个foreach只看到一个数组,所以第二个找到其余数组,但是当我打印出变量时它看起来很奇怪:
Member ID: 6
Leadership_ID: 6
Member ID: 0
Leadership_ID: 0
Member ID: 7
Leadership_ID: 7
Member ID: 1
Leadership_ID: 1
Member ID: 2
Leadership_ID: 2
Member ID: 2
Leadership_ID: 2
关于HTML加载数据的方式可能存在问题,这是一个例子:
<input type="hidden" name="options[0]['member_id']" value="6">Name
<select name="options[0]['leadership_id']">
<option value="0">None</option>
<option value="1">Small Unit</option>
<option value="2">Large Unit</option>
</select><br />
<input type="hidden" name="options[1]['member_id']" value="7">Pyras
<select name="options[1]['leadership_id']">
<option value="0">None</option>
<option value="1">Small Unit</option>
<option value="2">Large Unit</option>
</select><br />
答案 0 :(得分:1)
你对这段代码有什么看法:
foreach ($_POST['options'] as $test) {
print_r($test);
}
发布所有内容。
编辑1 :试试这个:
foreach ($_POST['options'] as $test) {
if (isset($test['member_id']) && isset($test['leadership_id'])) {
var_dump($test['member_id']);
var_dump($test['leadership_id']);
} else {
echo 'Bad Values:' . var_dump($test);
}
}
你得到了什么?
编辑2 : 看起来你的钥匙还有额外的“钥匙”。你的HTML是什么?如果那不是一个选项,请执行:
foreach ($_POST['options'] as $test) {
if (isset($test["'member_id'"]) && isset($test["'leadership_id'"])) {
var_dump($test["'member_id'"]);
var_dump($test["'leadership_id'"]);
} else {
echo 'Bad Values:' . var_dump($test);
}
}
编辑3 :
将您的HTML更改为:
<input type="hidden" name="options[0][member_id]" value="6">Name
<select name="options[0][leadership_id]">
<option value="0">None</option>
<option value="1">Small Unit</option>
<option value="2">Large Unit</option>
</select><br />
<input type="hidden" name="options[1][member_id]" value="7">Pyras
<select name="options[1][leadership_id]">
<option value="0">None</option>
<option value="1">Small Unit</option>
<option value="2">Large Unit</option>
</select><br />
答案 1 :(得分:0)
You need to access it like this:
foreach($options as $key=>$opt){
echo $opt["member_id"];
echo $opt["leadership_id"];
}
答案 2 :(得分:0)
代码工作正常,所以这是另一个问题。
以下是一个工作示例:http://sandbox.onlinephpfunctions.com/code/cf657dd63428e5199ddd22c643fa464c0657b43f
也许上下文会帮助我们解决问题。