这不起作用,我想要它做的是通过帖子直到没有更多item_name1并且他们增加到item_name2 - item_name3 ect ....没有吐出错误,只是不做它是什么意思,检查是否有人在这里看到一个。感谢
if(isset($_POST['item_name1'])){
for($i = 1; $i < 9999; $i++) {
if(isset($_POST['item_name$i'])){
do this thing
}
else{
$i = 10000;
}
}
}
答案 0 :(得分:1)
在循环中更正$ _POST ['item_name $ i'] 让它成为这样的东西再试一次
if(isset($_POST['item_name'.$i])) { do something; }
如果我错了,我道歉
答案 1 :(得分:1)
尝试将$i
放在item name
后面,例如:
$_POST['item_name'.$i]
答案 2 :(得分:0)
将'item_name$i'
更改为双引号"item_name$i"
if(isset($_POST['item_name1'])){
for($i = 1; $i < 9999; $i++) {
if(isset($_POST["item_name$i"])){
do this thing
}
else{
$i = 10000;
}
}
}
答案 3 :(得分:0)
尝试以下
if(isset($_POST['item_name1'])){
for($i = 1; $i < 9999; $i++) {
if(isset($_POST["item_name$i"])){ #or just if(isset($_POST['item_name' . $i]))
double quotes ^-----------^
}else{
break;
}
}
}
答案 4 :(得分:0)
您正在处理经典的$_POST
反模式。您应该做的就是发布数据数组。这从适当的输入命名开始。我可以建议这样的事情:
<input name="item_name[1][]" ... />
<input name="item_name[1][]" ... />
<input name="item_name[2][]" ... />
<input name="item_name[2][]" ... />
<input name="item_name[2][]" ... />
<input name="item_name[3][]" ... />
通过使用这种命名约定,您可以将多维数组发布到可以使用的$_POST['item_name']
,而无需在使用之前按摩数据。
例如,在这种情况下,您将获得$_POST['item_name']
[
0 => [
0 => "some value",
1 => "some other value"
],
1 => [
0 => "yet another value",
1 => "foo",
2 => "bar"
],
3 => [
0 => "last one"
]
]
实际上,当你想要在输入名称中增加值时,你几乎可以认为使用数组表示法是一种更好的方法。
例如,使用此方法,您无需循环遍历$i
的一堆值,因为此索引可能出现在item_name$i
中。相反,您已经拥有已填充所有适当item_name[i]
值的数组。
答案 5 :(得分:0)
您使用单引号来包装变量$i
将if(isset($_POST['item_name$i'])){
更改为if(isset($_POST["item_name$i"])){