スレッド式の掲示板を作成しています。データベースへの送信にajax通信を使用してデータを送信する際、エラーチェックを行う為、
・threadInsert.php <?php /* ------------------------------ 変数に格納 ------------------------------ */ /* タイトル */ $title = $_POST['title']; $title = htmlspecialchars($title, ENT_QUOTES, 'UTF-8'); /* 名前 */ $name = $_POST['name']; $name = htmlspecialchars($name, ENT_QUOTES, 'UTF-8'); /* 顔アイコン */ $icon = $_POST['icon']; /* 顔アイコン */ $category = $_POST['category']; /* メッセージ */ $message = $_POST['message']; $message = htmlspecialchars($message, ENT_QUOTES, 'UTF-8'); /* パス */ $passDefault = $_POST['pass']; $pass = htmlspecialchars($passDefault, ENT_QUOTES, 'UTF-8'); $pass = hash("sha256",$pass); /* ------------------------------ チェック処理 ------------------------------ */ $blank = array(' ',' '); $checkTitle = str_replace($blank, "", $title); $checkName = str_replace($blank, "", $name); $checkMessage = str_replace($blank, "", $message); $checkPass = str_replace($blank, "", $pass); if($checkTitle == ""){ p('noTitle'); return; } if($checkName == ""){ p('noName'); return; } if($icon == ""){ p('noIcon'); return; } if($category == ""){ p('noCategory'); return; } if($checkMessage == ""){ p('noMsg'); return; } if($checkPass == ""){ p('noPass'); return; }
・script <script type="text/javascript"> /* メッセージをDBへ登録 */ $(document).ready(function(){ /** * 送信ボタンクリック */ $('#send').click(function(){ /* POSTメソッドで送るデータを定義します var data = {パラメータ名 : 値}; */ var bbsData = { title : $('#title').val(), name : $('#name').val(), icon : $('#selectIconValue').val(), category : $('#category').val(), message : $('#message').val(), pass : $('#pass').val() }; /** * Ajax通信メソッド * @param type : HTTP通信の種類 * @param url : リクエスト送信先のURL * @param data : サーバに送信する値 */ $.ajax({ type: "POST", url: "/src/server/threadInsert.php", data: bbsData, async:false, /** * Ajax通信が成功した場合に呼び出されるメソッド */ success: function(data, dataType){ if(data == 'noTitle'){ alert("タイトルを入力してください"); }else{ alert(data); } /*location.href="/index.html";*/ }, /** * Ajax通信が失敗した場合に呼び出されるメソッド */ error: function(XMLHttpRequest, textStatus, errorThrown){ /* エラーメッセージの表示 */ alert('Error : ' + errorThrown); } }); /* サブミット後、ページをリロードしないようにする。 */ return false; }); }); </script> コード
この時、試しにタイトルが空白だった場合のエラーチェックのみを記述して動作を試したところ、アラートで「タイトルを入力してください」ではなく、else側の「'noTitle'」が出てきてしまいました。
success: function(data, dataType){ if(data == 'noTitle'){ alert("タイトルを入力してください"); }else{ alert(data)
dataのなかには「noTitle」が存在しているはずなのに、どうしてtureではなくfalseのほうになってしまうのでしょうか?
もしよろしければご教授お願い致します。
回答2件
あなたの回答
tips
プレビュー