$index = 1;
foreach($product['varieties'] as $variety){
echo '<input style="width:10px; margin-left:9px; " name="price_' . $index . '" type="checkbox" value="' . $variety['price']. '" />';
echo '<input name="size_' . $index . '" type="text" value="' . $variety['size']. '" />'; $index++;
}
如果你能看到这将有一个索引= 1,它将递增每个迭代将是price_1,price_2等,size_1,size_2。现在使用动态名称=“”输入,当每个名称不同时,如何在cart.php中收到?
它会像$price= "'..',$_POST['price_']"
?好吧,我不知道如何从cart.php网址获得此名称索引。
向你求助。
答案 0 :(得分:2)
为什么不将名称设为size_1
,而不是使用字符串构建名称size[]
。
然后你就可以通过PHP立即访问它了。
答案 1 :(得分:0)
看看亚历克斯的回答。它更适合这种情况..
最后,您可以添加一个带有项目数的隐藏文本框($ index值)。并阅读它
所以在循环后添加
echo '<input name="counter" type="hidden" value="' . $index. '" />'
当你尝试阅读它时,第一件事是阅读 $POST['counter']
然后再从1循环到读取$POST['price_'.$loop_counter]
答案 2 :(得分:0)
您可以使用以下内容找到值:
$prices = preg_grep('/^price_\d+$/', $_POST);
foreach($prices as $P) {
$idx = substr($p, 5); // extract the digits, which we know will be at position 5->end
$size = $_POST['size_' . $idx];
etc....
}
这假设对于每个price_#,都有相应的size_#