单选按钮发布多个输入字段的数据

时间:2012-08-17 10:57:17

标签: php html forms post radio-button

我的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并搜索了一堆但没有找到一个不错的答案,但它在我看来这是经常使用的。请让我知道我在这里缺少什么。

非常感谢任何帮助!

3 个答案:

答案 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];
}

像魅力一样!谢谢大家的非常有益的评论!