2013-07-26 21 views
2
foreach($rates as $item){  
    if ($item->disabled == false){ 
     echo '<input type="radio" name="rate" id="membership" required="yes" message="Please select your membership type." value="' . $item->rate . '"><input type="hidden" name="membership" value="' . $item->membership . '" >'; 
    } 
} 

這可能很簡單,但我遇到的問題是我無法使用$ item-> rate提交$ item-> membership。例如,當有人選擇'125'的價格時,它也應該提交'學生'或其他。當我提交表單時,它會提交系列中的最後一個$ item->成員資格,而不是與其相關的最後一個$ item->成員資格......任何幫助都將被讚賞,我確信我正在推翻這一點。用一個輸入提交多個變量

感謝

+3

所有隱藏的輸入將具有相同的「成員資格」名稱。這對單選按鈕很好,但不適用於其他類型的輸入。 – andrewsi

+0

用正確的$ item->成員資格提交$ item-> rate的適當方法是什麼? – aceslowman

+0

最好的辦法是獲得'會員'對發佈'速度'不要試圖進入隱藏字段用戶可以更改字段的數據 –

回答

3

因爲它們都具有相同的名稱屬性,因此他們設置了相同的變量多次,因此最後一個是什麼,你總能得到。嘗試給所有隱藏的輸入唯一的名稱,所以你可以得到你想要的會員資格。 HTML表單不夠聰明,只能選擇單選按鈕旁邊的隱藏輸入,他們都會發布。

0

當您提交表單時,隱藏字段和單選按鈕是獨立的元素,無論您如何將它們包裝在一起。

這裏是我的解決方案通過多個變量對每個單選按鈕

觀點:

<form method="post" action="your_post_file.php" > 
    <?php $i = 1; foreach($rates as $item){?> 
     <input type="radio" name="rates[]" value="<?php echo $i?>" /><?php echo $item->rate?> 
     <input type="hidden" name="rate<?php echo $i?>" value="<?php echo $item->rate?>" /> 
     <input type="hidden" name="membership<?php echo $i?>" value="<?php echo $item->member_id?>" /> 
    <?php $i++;}?> 

    <input type="submit" /> 
</form> 

在your_post_file.php

if(isset($_POST['rates'])){ 
      if(is_array($_POST['rates'])){ 

       $index = $_POST['rates'][0]; //return the index of selected radio button 

       $rate = $_POST['rate' . $index]; 
       $membership_id = $_POST['membership' . $index]; 

       //print out the result 
       var_dump($rate); 
       var_dump($membership_id); 

      } 
     } 

賓果遊戲,你得到你想要的東西,甚至您需要更多每個費率的值,只需添加具有相同給定格式的更多隱藏字段,例如名字,姓氏或其他任何內容。