这会创建某种永久循环吗?我试过发布数据,页面根本不会加载,包含表单的页面只是在表单提交上“加载”。
for($i = 1; $i = 5; $i++) {
$country[$i] = $_POST['country_'.$i];
$redirect[$i] = $_POST['redirect_'.$i];
}
var_dump($country);
var_dump($redirect);
这是我的表格;
<form action="query.php" method="post" id="geoui">
<div id="input1" class="clonedInput">
<select name="country_1" class="px460s">
<option selected="selected" value="auto">Choose country to set rule for..</option>
<option>United Kingdom</option>
<option>Canada</option>
</select>
<input name="redirect_1" type="text" class="px460" value="http://">
<div class="break"></div>
</div><div id="input2" class="clonedInput">
<select name="country_2" class="px460s">
<option selected="selected" value="auto">Choose country to set rule for..</option>
<option>United Kingdom</option>
<option>Canada</option>
</select>
<input name="redirect_2" type="text" class="px460" value="http://">
<div class="break"></div>
</div><div id="input3" class="clonedInput">
<select name="country_3" class="px460s">
<option selected="selected" value="auto">Choose country to set rule for..</option>
<option>United Kingdom</option>
<option>Canada</option>
</select>
<input name="redirect_3" type="text" class="px460" value="http://">
<div class="break"></div>
</div><div id="input4" class="clonedInput">
<select name="country_4" class="px460s">
<option selected="selected" value="auto">Choose country to set rule for..</option>
<option>United Kingdom</option>
<option>Canada</option>
</select>
<input name="redirect_4" type="text" class="px460" value="http://">
<div class="break"></div>
</div><div id="input5" class="clonedInput">
<select name="country_5" class="px460s">
<option selected="selected" value="auto">Choose country to set rule for..</option>
<option>United Kingdom</option>
<option>Canada</option>
</select>
<input name="redirect_5" type="text" class="px460" value="http://">
<div class="break"></div>
</div>
</form>
非常感谢任何建议或答案;)!
答案 0 :(得分:6)
for($i = 1; $i = 5; $i++) {
您错过了<
:
for($i = 1; $i <= 5; $i++) {
顺便说一句,你可以使用表单元素名称的数组语法,这样你就不会使用$_POST['country_'.$i]
来访问发布的数据,而是$_POST['country'][$i]
或$_POST[$i]['country']
:
<select name="query[1][country]" class="px460s">
<input name="query[1][redirect]" type="text" class="px460" value="http://">
然后在你的PHP脚本中:
foreach($_POST['query'] as $item) {
$country = $item['country'];
$redirect = $item['redirect'];
}
答案 1 :(得分:3)
是的,它会的。 $ i = 5始终为真,因为5总是可以分配给$ i。
更改为:
for($i = 1; $i < 5; $i++) {
$country[$i] = $_POST['country_'.$i];
$redirect[$i] = $_POST['redirect_'.$i];
}
答案 2 :(得分:3)
是的,确实如此:
for($i = 1; $i = 5; $i++) {
中间子句($i = 5
)是一个赋值 - 它使$i
等于5,然后返回true,这是一个真值,导致循环继续。试试这个:
for($i = 1; $i <= 5; $i++) {
答案 3 :(得分:2)
您没有在for函数中设置限制(检查)。它会循环。应该是这样的:
for($i = 1; $i < 5; $i++) {
答案 4 :(得分:1)
尝试将assignment
运算符更改为comparison
运算符:
for($i = 1; $i <= 5; $i++)
而不是:
for($i = 1; $i = 5; $i++)