'checked'属性を使用する必要があります。これは機能するはずです。$ optValueは変数であり、'option'プロパティはに保存されます。
for($i = 1; $i < 3; ++$i) $opchecked[$i] = ""; //Makes sure, that the variables are set.
$opchecked[$optValue] = 'checked'; //Sets the 'correct' option.
$html = "<form method='post'>
<p>Option</p>
<input type='radio' $opchecked[1] name='options' value='1'> Option1<br />
<input type='radio' $opchecked[2] name='options' value='2'> Option2<br />
</form>";
しかし、私が考えることができる最も洗練されたメソッドは、関数呼び出しです。
function getRadio($Value, $Text) {
$checked = (isset($_POST['animal']) && $Value == $_POST['animal']) ? "checked=checked" : "";
return "<input type='radio' $checked name='animal' value='$Value'>$Text</input><br />";
}
$html = "<form method='post'>
<p>Option</p>".
getRadio(1, "Dog").
getRadio(2, "Cat").
getRadio(3, "Bird").
</form>";
この関数呼び出しは、最初の呼び出しでは何も選択しませんが('$ _POST ['animal']'はまだ設定されていないため)、その後は常に前の動物'が選択されたままになります。「デフォルトの選択」を指定する場合は、次のような別のパラメーターを追加します。
function getRadio($Value, $Text, $default) {
if(!isset($_POST['animal']) && $default || isset($_POST['animal']) && $Value == $_POST['animal']) $checked = "checked=checked";
else $checked = "";
return "<input type='radio' $checked name='animal' value='$Value'>$Text</input><br />";
}