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;成员资格,而不是那个与它相关的成员资格......任何帮助都会受到赞赏,我确信我会过度思考这个问题。
由于
答案 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,你得到了你想要的东西,即使你想要更多的每个费率的价值,只需添加更多隐藏的字段,使用相同的给定格式,如名字,姓氏或其他任何东西。