对于学校作业,我必须建立一个客户端购物车。该作业声明我只能使用PHP发送订单确认。我正在使用隐藏的表单字段(在迭代cookie之后生成)将订单详细信息发送到结账页面,PHP将接管该页面。
一页上的表单字段
NumberOrdered = 0;
NumberOrdered = readCookie("NumberOrdered");
for (i=1; i <= NumberOrdered; i++){
NewOrder = "Order"+ i;
thisCookie = "";
thisCookie = readCookie(NewOrder);
fields = new Array();
fields = dezeCookie.split("|");
document.write("<input type=hidden name=\"ID_"+ i +"\" value=\"" + fields[0] + "\">");
document.write("<input type=hidden name=\"BRAND_"+ i +"\" value=\"" + fields[1] + "\">");
document.write("<input type=hidden name=\"MODEL_"+ i +"\" value=\"" + fields[2] + "\">");
document.write("<input type=hidden name=\"MATERIAL_"+ i +"\" value=\"" + fields[3] + "\">");
document.write("<input type=hidden name=\"PRICE_"+ i +"\" value=\"" + fields[4] + "\">");
}
我在通过$ _POST超全球的价值迭代时遇到了麻烦。我想使用一个for循环来存储数组中的值。我的确做错了。
提交后
<?php
for ($i = 1; $i > 12; $i){
if(!empty($_POST["ID_$i"]) && !empty($_POST["BRAND_$i"]) && !empty($_POST["MODEL_$i"]) && !empty($_POST["MATERIAL_$i"]) && !empty($_POST["PRICE$i"])){
$i = array ('id' => $_POST["ID_$i"],
'brand' => $_POST["BRAND_$i"],
'model' => $_POST["MODEL_$i"],
'material' => $_POST["MATERIAL_$i"],
'price' => $_POST["PRICE_$i"],
);
echo "$i";
}
}
?>
通过$ _POST超全局迭代不起作用..什么会起作用?
答案 0 :(得分:0)
小姐对连词的解释:
$_POST['ID_' . $i],
$_POST['BRAND_' . $i],
或者,如果您总是拥有相同数量的带有值的字段,例如,您可以将每个字段的名称设置为ID[]
,并将其作为普通数组进行访问:$_POST['ID'][0]
,{{ 1}},$_POST['ID'][1]
,...
虽然你必须确保所有字段都有一些价值。空值,空值或缺失值不会表示为$_POST['ID'][2]
的空值,数据之间的关系也会丢失。
顺便说一下,你的$_POST
会覆盖你自己的计数变量
您的$i = array(...
循环错误。实际上,你永远不会达到一个循环,因为你写了:for