以下は、ラジオ ボタンの行を作成するコードの一部です。$result の行ごとに、4 つのラジオ ボタンの行を作成する必要があります。また、ラジオ ボタンの#default_valueを、以前に選択した値に設定しようとしました。これは最初の送信では問題ありませんが、変更を加えて保存せず、元の選択値を取得したい場合、現在選択されている値が維持されます。
while ($my_data = db_fetch_object($result))
{
$form['opts'][$my_data->opt_id] = array(
'#type' => 'radios',
'#title' => t($my_data->option_name),
'#options' => array(
0 => 'N/A',
1 => 'Yes',
2 => 'No',
3 => 'Sometimes',
),
);
$form['opts'][$my_data->opt_id]['#default_value'] = 0;
if($my_data->selected_opt_id != 0){
$form['opts'][$my_data->opt_id]['#default_value'] = $my_data->selected_opt_id;
}
}
私が最終的に行ったことは、リストが要求されるたびに JavaScript を使用してデフォルト値を設定することでした。問題は、「#default_value」がフォームの初期ビューを制御するためだけに有効であり、ポストバックでは使用されないことだと思います。誰でも確認できますか?