はじめに
PHPでWebページを作っていて、ラジオボタンを設置することがありました。
ラジオボタンを設置出来たのはいいものの、ページを表示したときにラジオボタンの1番目にチェックが自動で入っていませんでした。
さらに、「送信ボタン」を押すとラジオボタンのチェックがクリアされてしまいます。
この2つの問題を解決したのでまとめておきます。
修正前
修正前のコードは下のような感じです。
ただラジオボタンを3つ設置しただけのものです。
<form method="POST" action="radio-btn.php">
<label><input type="radio" name="radio" value="1">Radio Botton 1</label>
<br>
<label><input type="radio" name="radio" value="2">Radio Botton 2</label>
<br>
<label><input type="radio" name="radio" value="3">Radio Botton 3</label>
<br>
<input type="submit" value="update">
</form>
ページでは下のように表示されます。
HTMLなので「update」ボタンは機能していませんが、初期状態でチェックが入っていないことが分かります。
ラジオボタンの1番目に初期状態でチェックが入っているようにするのと、「update」を押してもチェックが保持されるようにPHPファイルを編集しました。
修正後
修正後のコードは下のような感じです。
<form method="POST" action="radio-btn.php">
<label><input type="radio" name="radio" value="1" <?php if($_POST['radio']==""||$_POST['radio']=="1") echo 'checked'?>>Radio Botton 1</label>
<br>
<label><input type="radio" name="radio" value="2" <?php if($_POST['radio']=="2") echo 'checked'?>>Radio Botton 2</label>
<br>
<label><input type="radio" name="radio" value="3" <?php if($_POST['radio']=="3") echo 'checked'?>>Radio Botton 3</label>
<br>
<input type="submit" value="update">
</form>
初期状態でチェックが入っているようなり、「update」を押してもチェックが保持されるようになりました。
コメント