2012-08-17 79 views
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>'; 

現在,當我張貼這種形式,我在尋找一種方式來獲得數量屬於選中的單選按鈕的輸入。我只需要來自所選單選按鈕行的數據。不需要其他的數據,我想這個產品添加到購物車陣。

if (isset($_POST['add_to_chart'])) 
{ 
    $product_id = $_POST['product_id']; 
    $size = $_POST['size'][0]; 
    $qty = $_POST['amount']; 
} 

在發佈的頁面,我知道什麼大小希望size[] 陣列的原因,但我不能得到相匹配的選定的單選按鈕相關的數量值。

我試圖使它成爲一個陣列qty[]治療數量相同的方式,單選按鈕,但將返回我的所有值。

我已經搜索過並搜索了一堆,但還沒有找到一個體面的答案,但它在我看來,這是用了很多。請讓我知道我在這裏錯過了什麼。

任何幫助,非常感謝!

+1

name =「size ['。$ d。']「將定義它所涉及的索引,您還需要在其他輸入上使用name =」amount ['。$ d。']「來匹配它們 – Waygood 2012-08-17 10:59:25

+0

$ _POST ['amount'] qty是類! – Waygood 2012-08-17 11:02:20

+0

是這是一個類型:)應該是金額 – GuZzie 2012-08-17 11:02:57

回答

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

像魅力工程!謝謝大家對你非常有幫助的評論!

1

單選按鈕都應該使用相同的名稱。只有選定的單選按鈕值將被提交:

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

則:

$size = $_POST['Radiosize']; 

沒有必要把它看作一個數組 - 它沒有提交爲一體。單選按鈕不喜歡的形式處理複選框。

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]; 
?> 
1
Form code: 

    <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"> 

And then you will have value of size. And array of amounts with size keys. 

    $size = $_POST['size']; 
    $amount = $_POST['amount'][$size]; 
相關問題