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->membership,而不是与其费率相关的那个...任何帮助将不胜感激,我相信我想多了。

谢谢

4

2 回答 2

3

因为它们都具有相同的 name 属性,所以它们多次设置相同的变量,因此最后一个是你总是得到的。尝试为所有隐藏的输入提供唯一名称,以便获得所需的成员资格。HTML 表单不够聪明,不能只选择单选按钮旁边的隐藏输入,它们都会被发布。

于 2013-07-26T17:29:16.360 回答
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);

            }
        }

宾果游戏,你得到你想要的,即使你想要每个速率的更多值,只需添加更多具有相同给定格式的隐藏字段,例如名字、姓氏或其他任何内容。

于 2013-07-26T18:16:00.680 回答