質問: $e_array[intval($e)]; } echo json_encode(compact('e_echo')); } $a=filter_input(INPUT_POST,'a'); valid_a($a); valid_b($b); valid_c($c); valid_d($d); valid_e($e); valid_a_echo($a); valid_b_echo($b); valid_c_echo($c); valid_d_echo($d); valid_e_echo($e); /*valid_a_echo($a)が出力する値はvalid_a($a)の値が出力される場所ではないです。 今回はvalid_a~valid_eまでについて質問致します。*/ ```
回答: コードが長くなるのでa,b,c のみでb,cについてはvalid_b(),valid_c()の呼び出しを省略した感じで 下に例示します。 ``` function valid_a($a) { $error_a=""; if (!isset($a)) { $error_a = "入力されていません。"; } elseif (($a != "a") && ($a != "b") && ($a != "c")) { $error_a = "不正なPOSTです。"; } return $error_a; } function valid_a_echo($a) { $a_echo = ""; $error_a = ""; $a_ans=array("a"=>"A","b"=>"B","c"=>"C"); $error_message = valid_a($a); if ($error_message == "") { $a_echo = $a_ans[$a]; } else { $error_a = $error_message; } return compact('a_echo','error_a'); } function valid_b_echo($b) { // valid_b()を呼び出す箇所は省略 $b_echo = "B"; $error_b = ""; return compact('b_echo','error_b'); } function valid_c_echo($c) { // valid_c()を呼び出す箇所は省略 $c_echo = ""; $error_c = "入力されていません。"; return compact('c_echo','error_c'); } $a = "x"; $b = "b"; $c = null; echo json_encode( array_merge(valid_a_echo($a), valid_b_echo($b), valid_c_echo($c))); ``` 上記の実行結果は以下のJsonになります。 ``` { "a_echo":"", "error_a":"不正なPOSTです。", "b_echo":"B", "error_b":"", "c_echo":"", "error_c":"入力されていません。" } ``` このJsonを受け取ればエラーメッセージと、解凍を両方受け取れるので空白じゃないほうを使ってHTML上に表示できるのではないでしょうか?