// sample.html <form action=".sample.php" method="post"> <div class="check_num"> <ul> <li><label><input type="checkbox" value=1 name="num" checked>One</label></li> <li><label><input type="checkbox" value=2 name="num">Two</label></li> <li><label><input type="checkbox" value=3 name="num">Three</label></li> </ul> <p>sample.phpに送れるかどうか確認</p> <input type="text" name="text" value="complete"> <input type="submit" value="表示"> </div> </form> // sample.js (jQuery使用) // checkboxで常に一つのみチェックがついている処理 $('[name="num"]').change(function(){ if($(this).prop('checked')){ $('[name="num"]').prop('checked',false); $(this).prop('checked',true); $('[name="num"]').removeAttr('disabled'); $(this).attr('disabled','disabled'); } }) // sample.php $text_input= filter_input(INPUT_POST,"text"); $check_num= filter_input(INPUT_POST,"num"); echo $text_input. "<br>"; // completeを表示 var_dump($check_num); // NUllを返す
JSでcheckboxの値を一択にしたうえでそのチェックした値をPHPに渡したいです。
普通ならcheckboxについてname="num[]" にするのですが、この[]をつけただけでsample.jsでコードした一択しかチェックできない処理が無視され、同時に複数のチェックボックスをチェックできる状態(デフォルトの状態)に勝手になってしまいます。一応ですが、$text_inputには値が渡せているのでactionのadress間違いではないと思います。
回答1件
あなたの回答
tips
プレビュー