我如何在cart.php中收到此表单

时间:2010-02-11 23:08:19

标签: php

$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网址获得此名称索引。

向你求助。

3 个答案:

答案 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_#