###前提・実現したいこと
PHPとHTMLを用いて
チェックボックスとプルダウンメニューを作ろうとしています。
この時、チェックボックスとプルダウンメニューに
PHPを用いてチェックの保持をしようとしています。
###発生している問題・エラーメッセージ
ヒアドキュメントを使った場合プルダウンメニューの選択保持が不可能になってしまいます。
尚、Syntax errorやFatal errorは出ていません
###該当のソースコード
//1 $attribute2 = array( 1 => 'A', //中略 23 => 'X',); $check_attribute = ""; $checked["attribute"] = array_fill(1, 23, ""); $attribute_answer=filter_input(INPUT_POST,'attribute',FILTER_VALIDATE_INT,["flags"=> FILTER_REQUIRE_ARRAY]); if(isset($_POST['attribute'])){ foreach($attribute_answer as $val){ $checked["attribute"][$val]=" checked"; } $select_attribute=implode("、",array_filter($attribute2,function($x) use($attribute_answer){ return in_array($x,$attribute_answer); }, ARRAY_FILTER_USE_KEY)); } //中略 //2 echo <<< EOD <div id="choice"> <input type="checkbox" name="attribute[]" value="1" id="1" {$checked["attribute"][1]}><label for="1">A</label> <select name="NOP_1"> <option value="0">0</option> <option value="1" <? print ((isset({$_POST['NOP_1']})) && ({$_POST['NOP_1']} == "1")) ? print "selected" : print ""; ?>1</option> <option value="2" <? print ((isset({$_POST['NOP_1']})) && ({$_POST['NOP_1']} == "2")) ? print "selected" : print ""; ?>2</option> <option value="3" <? print ((isset({$_POST['NOP_1']})) && ({$_POST['NOP_1']} == "3")) ? print "selected" : print ""; ?>3</option> <option value="4" <? print ((isset({$_POST['NOP_1']})) && ({$_POST['NOP_1']} == "4")) ? print "selected" : print ""; ?>4</option> </select> <br><br> <input type="checkbox" name="attribute[]" value="2" id="2" {$checked["attribute"][2]}><label for="2">B</label> <select name="NOP_2"> <option value="0">0</option> <option value="1" <? print ((isset({$_POST['NOP_2']})) && ({$_POST['NOP_2']} == "1")) ? print "selected" : print ""; ?>1</option> <option value="2" <? print ((isset({$_POST['NOP_2']})) && ({$_POST['NOP_2']} == "2")) ? print "selected" : print ""; ?>2</option> <option value="3" <? print ((isset({$_POST['NOP_2']})) && ({$_POST['NOP_2']} == "3")) ? print "selected" : print ""; ?>3</option> <option value="4" <? print ((isset({$_POST['NOP_2']})) && ({$_POST['NOP_2']} == "4")) ? print "selected" : print ""; ?>4</option> </select> <br><br> <input type="checkbox" name="attribute[]" value="3" id="3" {$checked["attribute"][3]}><label for="3">C</label> <select name="NOP_3"> <option value="0">0</option> <option value="1" <? print ((isset({$_POST['NOP_3']})) && ({$_POST['NOP_3']} == "1")) ? print "selected" : print ""; ?>1</option> <option value="2" <? print ((isset({$_POST['NOP_3']})) && ({$_POST['NOP_3']} == "2")) ? print "selected" : print ""; ?>2</option> <option value="3" <? print ((isset({$_POST['NOP_3']})) && ({$_POST['NOP_3']} == "3")) ? print "selected" : print ""; ?>3</option> <option value="4" <? print ((isset({$_POST['NOP_3']})) && ({$_POST['NOP_3']} == "4")) ? print "selected" : print ""; ?>4</option> </select> //同じようなコードの連続 <input type="checkbox" name="attribute[]" value="23" id="23" {$checked["attribute"][23]} ><label for="23">X</label> <select name="NOP_23"> <option value="0">0</option> <option value="1" <? print ((isset({$_POST['NOP_23']})) && ({$_POST['NOP_23']} == "1")) ? print "selected" : print ""; ?>1</option> <option value="2" <? print ((isset({$_POST['NOP_23']})) && ({$_POST['NOP_23']} == "2")) ? print "selected" : print ""; ?>2</option> <option value="3" <? print ((isset({$_POST['NOP_23']})) && ({$_POST['NOP_23']} == "3")) ? print "selected" : print ""; ?>3</option> <option value="4" <? print ((isset({$_POST['NOP_23']})) && ({$_POST['NOP_23']} == "4")) ? print "selected" : print ""; ?>4</option> </select> <br><br> EOD;
###補足情報(言語/FW/ツール等のバージョンなど)
XAMPPの最新版を使用
回答2件
あなたの回答
tips
プレビュー