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->membership を $item->rate で送信できないことです。たとえば、誰かが「125」レートを選択した場合、「学生」なども送信する必要があります。ただし、フォームを送信すると、レートに関連付けられているものではなく、シリーズの最後の $item->membership が送信されます...助けていただければ幸いです。

ありがとう

4

2 に答える 2

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 に答える