0

4 つのラジオ ボタンがあり、選択したラジオ ボタンに基づいてドロップダウン メニューを取得したいと考えています。これらすべてのドロップダウンを準備して、選択に基づいて表示するのが最善ですか、それともajaxでそれを行う方法がありますか(ドロップダウン値はデータベースから来ているため)? ラジオボタンは次のとおりです。

<input type="radio" name="some" value="someValue1">
<input type="radio" name="some" value="someValue2">
<input type="radio" name="some" value="someValue3">
<input type="radio" name="some" value="someValue4">

ドロップダウンは次のとおりです。

<select name="reason">
<?php
$data = WorkReason::all();
foreach ($data as $d) {
?>
 <option value="<?php echo $d->code; ?>"><?php echo $d->reason; ?></option>
<?php
}
?>
</select> 

データベースから値を取得するためにphp ActiveRecordsを使用しています。したがって、誰かがこれを行う良い方法を知っていれば、助けていただければ幸いです。

4

3 に答える 3

1

別のドロップダウンリストを作成し、php条件を追加して、クリックされたラジオボタンを確認し、そのリストを表示します。配列を使用して、適切なコードを選択できます。

$radio2select = array ("someValue1" => "<select>..." , "someValue2" => "...", "someValue3" => "..."); // you get the idea
echo $radio2select($_REQUEST['radio']) ;

配列の使用は、switchステートメントの使用を回避するためのトリックであり、ドロップダウンボックスが事前に計算されている場合にうまく機能します。

それ以外の場合は、ドロップダウンボックスを作成する関数を作成します。

function select_reasons($which){
<select name="reason">
<?php
  $data = WorkReason::all(array('conditions' => array ( 'reason = ?' => $which)));
  foreach ($data as $d) {
?>
 <option value="<?php echo $d->code; ?>"><?php echo $d->reason; ?></option>
<?php
 }
?>
</select>
}

次に、を渡すだけで$_REQUEST[‘radio']、対応するドロップダウンリストが生成されます。

私はあなたのデータベーススキーマを知らないことに注意してください、しかしそれはあなたが始めるべきだと思います。

また、このコードは通常のGetまたはPostで機能するか、ajaxラウンドトリップ内に埋め込むことができます(これは使用しているフレームワークによって異なります)。もう1つの利点は、CSSベースのソリューションと比較して、必要なhtmlコードのみがページに含まれることです。

于 2012-11-07T14:10:54.143 に答える
1

さまざまなドロップダウン リストを作成し、php 条件を追加して、どのラジオ ボタンがクリックされたかを確認し、そのリストを表示します。

if (isset($_POST['checkbox1']) {

echo '<select>...'

} else if (isset($_POST['checkbox2']) {

echo '<select>...'

}
于 2012-11-07T13:29:32.693 に答える
0

すべてのドロップダウン メニューを読み込んで、ユーザーが以前に CSS で選択したものを表示するだけです。

display:block
display:none
于 2012-11-07T13:30:14.787 に答える