使用一个输入提交多个变量

时间:2013-07-26 17:20:23

标签: php jquery input radio-button

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-&gt; rate提交$ item-&gt;会员资格。例如,当某人选择“125”费率时,它还应提交“学生”或其他任何内容。当我提交表格时,它会提交系列中的最后一个$ item-&gt;成员资格,而不是那个与它相关的成员资格......任何帮助都会受到赞赏,我确信我会过度思考这个问题。

由于

2 个答案:

答案 0 :(得分:3)

因为它们都具有相同的名称属性,所以它们多次设置相同的变量,因此最后一个变量就是你总是得到的。尝试给所有隐藏的输入提供唯一的名称,这样您就可以获得所需的会员资格。

表示,HTML表单不够智能,只能选择单选按钮旁边的隐藏输入。

答案 1 :(得分: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);

            }
        }

Bingo,你得到了你想要的东西,即使你想要更多的每个费率的价值,只需添加更多隐藏的字段,使用相同的给定格式,如名字,姓氏或其他任何东西。