我的PHP页面中有一个表单,它是通过数组循环创建的。
echo '<form method="POST" name="add_to_cart_form">
<div id="Product_add_sizes">
<table border="0" cellpadding="2" class="product_txt_font" align="center">
<input type="hidden" name="product_id" value="'.$arr_get_products[$c]['id'].'">';
for ($d = 0; $d < count($arr_get_product_details); $d++)
{
echo '<tr>
<td>
<input type="radio" name="size[]" value="'.$arr_get_product_details[$d]['size'].'">
</td>
<td>
<input class="qty" type="text" size="3" name="amount" value="1">
</td>
</tr>';
}
echo '</table>
<input type="submit" name="add_to_chart" value="Add Product" />
</div>
</form>';
现在,当我发布此表单时,我正在寻找一种获取属于所选单选按钮的qty输入的方法。我只需要来自所选单选按钮行的数据。我不想要其他数据,因为我想将此产品添加到购物车阵列。
if (isset($_POST['add_to_chart']))
{
$product_id = $_POST['product_id'];
$size = $_POST['size'][0];
$qty = $_POST['amount'];
}
发布页面时,我知道size[]
的原因是什么尺寸
数组,但我无法获得与所选单选按钮匹配的相关数值。
我试图通过使它成为一个数组qty[]
来对待数量与单选按钮相同,但这将返回所有值。
我搜索了SO并搜索了一堆但没有找到一个不错的答案,但它在我看来这是经常使用的。请让我知道我在这里缺少什么。
非常感谢任何帮助!
答案 0 :(得分:1)
单选按钮应使用相同的名称。仅提交选定的单选按钮值:
<input type="radio" name="Radiosize" value="'.$arr_get_product_details[$d]['size'].'">
然后:
$size = $_POST['Radiosize'];
没有必要将其视为数组 - 它不是作为一个提交的。单选按钮与表单处理中的复选框不同。
答案 1 :(得分:1)
更改
<input class="qty" type="text" size="3" name="amount" value="1">
到
<input class="qty" type="text" size="3" name="amount[]" value="1">
然后您将拥有2个具有相同大小的阵列。
<?php
$size = $_POST['size'][0];
$amount = $_POST['amount'][$size];
?>
答案 2 :(得分:0)
我通过以下方式解决了这个问题。
上面的人都让我走上正轨,没有他们就无法做到!
更改
<input type="radio" name="size[]" value="'.$arr_get_product_details[$d]['size'].'">
<input class="qty" type="text" size="3" name="amount" value="1">
要
<input type="radio" name="size['.$d.']" value="'.$arr_get_product_details[$d]['size'].'">
<input class="qty" type="text" size="3" name="amount['.$d.']" value="1">
也改变了
if (isset($_POST['add_to_chart']))
{
$product_id = $_POST['product_id'];
$size = $_POST['size'][0];
$qty = $_POST['amount'];
}
到此
if (isset($_POST['add_to_chart']))
{
// Array ID key
$key = key($_POST['size']);
$product_id = $_POST['product_id'];
$size = $_POST['size'][$key];
$qty = $_POST['amount'][$key];
}
像魅力一样!谢谢大家的非常有益的评论!