0

我的 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 值。

我试图通过将 qty 设为数组来将其视为与单选按钮相同的方式,qty[]但这将返回所有值。

我搜索了 SO 并用谷歌搜索了一堆,但没有找到一个像样的答案,但在我看来,这已经被大量使用了。请让我知道我在这里缺少什么。

任何帮助是极大的赞赏!

4

4 回答 4

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];
?>
于 2012-08-17T11:03:38.990 回答
1

单选按钮都应该使用相同的名称。仅提交选定的单选按钮值:

<input type="radio" name="Radiosize" value="'.$arr_get_product_details[$d]['size'].'">

然后:

$size = $_POST['Radiosize'];

无需将其视为一个数组 - 它不会作为一个提交。单选按钮不像表单处理中的复选框。

于 2012-08-17T11:02:21.067 回答
1

表格代码:

    <input type="radio" name="size" value="'.$arr_get_product_details[$d]['size'].'">
    <input class="qty" type="text" size="3" name="amount['.$arr_get_product_details[$d]['size'].']" value="1">

然后你就会有大小的价值。以及带有大小键的数量数组。

    $size   = $_POST['size'];
    $amount = $_POST['amount'][$size];
于 2012-08-17T11:09:47.577 回答
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];
}

奇迹般有效!谢谢大家非常有帮助的评论!

于 2012-08-17T11:42:20.030 回答