●●概要
入力フォームが空白の場合にPHPでアラートによるエラーメッセージを表示したいです。
提示したコードは、①入力フォームの画面、②入力内容確認画面、③送信画面(PHPMiler)で送るコードの①の段階のものです。
提示コードに書かれているエラーメッセージのコードはjavaspiritとPHPコードで、それそれで書いていますが、データの保持やエラーメッセージがjavaspiritとPHPで2重に書かれているものを、これをできればPHPで、アラートを表示させたいです。
この提示のコードでも、全く問題なくアラート表示で動作しますが、2重にデータを受け取ったりするのが、良くないような気がします。
この提示コードで重複にせずPHPで付属画像と同じような感じにしたいです。
php
1<?php 2session_start(); 3 4$errors = array(); 5if ($_POST) { 6$plan = filter_input(INPUT_POST, 'plan'); 7$name = filter_input(INPUT_POST, 'name'); 8 9 10if (empty($plan)) $errors[] ="お問い合わせ内容を選択して下さい。 "; 11if (empty($name)) $errors[] ="名前が入力されていません。 "; 12 13 14if (count($errors) === 0) { 15$_SESSION['plan'] = $plan; 16$_SESSION['name'] = $name; 17 18/* 確認画面の表示, */ 19header('Location:http:●●php'); 20exit(); 21 } 22} 23 24if(isset($_GET['action']) && $_GET['action'] === 'edit'){ 25 26$plan = isset($_SESSION['plan']) ? $_SESSION['plan'] : ''; 27$name = isset($_SESSION['name']) ? $_SESSION['name'] : ''; 28} 29 30?> 31<!DOCTYPE html> 32<html lang="ja"> 33<head> 34 <meta content="text/html; charset=utf-8" /> 35 <title></title> 36 <link rel="stylesheet" href="companyhp6form1.css"> 37 38 <script src="jquery-3.6.0.min.js"></script> 39 40 41 42 <style type="text/css"> 43 44</style> 45</head> 46<body> 47 48<?= count($errors) ? '<ul><li>' . implode('</li><li>', $errors) . '</li></ul>' : '' ?> 49 50 <!--javascriptによるエラー表示のためid="form"を追加--> 51 <form action="companyhp6form1.php" method="post" id="form"> 52 53 54 55 <span class="selectbox"> 56 <select id="plan" class="plan" name="plan"> 57 <option value="">お問い合わせ内容選択</option> 58 <option value="事業内容について" <?php if(isset($plan) && $plan==="事業内容について" ) { echo "selected" ;} ?>>事業内容について 59 </option> 60 61 </select> 62 </span> 63 </div> 64 65 66 67 <p class="tel-titile"> 68 名前:※ 69 </p> 70 <input type="text" class="name" name="name" id="name" value="<?php if(isset($name)){ echo $name; } ?>" /> 71 </div> 72 73 74 <div class="auto-style1"> 75 76 <button type="submit" id="submit" name="submit" class="auto-style4"> 77 送信</button> 78 </div> 79 80</form> 81 82<script> 83//javascript でエラーメッセージの表示 84const key = 'date_key'; 85const form = document.querySelector('#form'); 86const plan = document.querySelector('#plan'); 87 const name = document.querySelector('#name'); 88form.addEventListener('submit', function(event) { 89let msg = ""; 90// デバッグのためチェックを外すパターンも試す 91// javascriptでエラーメッセージの表示 PHPと重複表示にしています。 92if (plan.value == "") msg += "お問い合わせ内容を選択して下さい。\n"; 93if (name.value == "") msg += "名前が入力されていません。\n"; 94 95 96if (msg != "") { 97event.preventDefault(); 98alert(msg); 99} 100}); 101 102form.addEventListener('change', function() { 103if (plan.value != "") sessionStorage.setItem('plan', plan.value); 104if (name.value != "") sessionStorage.setItem('name', name.value); 105 106// javascriptで前面遷移による、(セレクトボックスの値を保持sessionStorage 107 108let val1 = sessionStorage.getItem('plan'); 109if(val1!== null)plan.value = val1; 110 111// javascriptで前面遷移による、入力フォームの値を保持sessionStorage 112 113name.value = sessionStorage.getItem('name'); 114 115</script> 116 117 118</div> 119 120 121</body> 122</html>
回答1件
あなたの回答
tips
プレビュー