mysql データベースからデータを取得し、結果をラジオ ボタンとして表示するクイズを開発しています。ラジオ ボタンは、key=>value に基づいて入力され、単純な forloop を介して生成されます。これは何度も行われており、単純な Google 検索と調査によって、これを達成するために必要なすべての結果が得られます。私が抱えている、または抱えていた問題 (jquery でこれを行うことを決定する前) は、フォームを送信すると、ボタンが選択されているかどうかを検証するために JavaScript 関数が実行されますが、他のオプションを選択すると最初のラジオ ボタンよりも、ボタンを選択しなかった場合と同じ「選択を行う」というアラートが表示されます。最初のラジオ ボタンを選択すると、true が返され、getCheckedValue 関数呼び出しが実行されます。まるで、スクリプトは、入力タイプが 1 つだけであることを認識し、残りのボタンを反復処理することを理解していません。私はこの関数を何十回もリファクタリングしましたが、なぜこれが機能しないのかまだわかりません。
<?php
foreach ($dataReturn as $j => $value){
echo "<input type='radio' class='answer' id='radiobtn' name='radiobtn' value='".$j."'>" .$value." </input><br/>";
}
?>
上記は、ラジオ ボタンを生成するループです (参考までに、$dataReturn は、シャッフルされた連想配列の戻り値です。(これは意図したとおりに機能しています) 送信ボタンがクリックされると、以下の JavaScript 関数が呼び出されます。
function isNull(){
var isChecked = false;
var radiobutton = document.getElementsByName('radiobtn');
for (var i=0; i <= radiobutton.length; i++){
if (radiobutton[i].checked){
return true;
var answer = radiobutton[i].value;
getCheckedValue(answer);//using this just for testing selected value
}else {
alert("Make a selection.");
}
return false;
}
}
これが機能しない理由がわかりません。上記のように、jquery を使用すると、これは完全に機能します。