JQUERY .ajax()を使用して、PHPを使用してシリアル化されたフォームデータをMySQLに送信しています。データの処理で問題が発生した場合、呼び出されているバックエンドPHPはメッセージを返します。次に、Javascript関数は、次に何をするかを決定する前に、返されるメッセージをチェックします。メッセージの長さが「0」の場合、投稿は成功し、続行できます。メッセージの長さが「0」より大きい場合は、フォーム処理でエラーが発生している必要があり、そこでトラップされて処理されます。ただし、テストしたところ、フォームデータの処理に成功すると、メッセージ自体が空白であるにもかかわらず、サイズ13のメッセージが返されることがわかりました。
私が使用したjavascript関数は以下のとおりです。13文字を超えるメッセージの長さをテストするように変更しましたが、これは現在正常に機能しています。空白の応答が13文字の長さである理由について知りたいだけです。複雑な.load()ステートメントは無視してください。エラーメッセージが検出されたかどうかに応じて、ユーザーを別のページに戻すだけです。
$("button#update").click(function() {
var cat = $("select#cat_select").val();
var dataString = $("form#project_update").serialize();
$.ajax({
type: "POST",
url: "process.php",
data: dataString,
dataType: 'text',
success: function( msg ) {
console.log('msg is ' + msg);
length = msg.length;
console.log('length is ' + length);
if (length > 13) { // no idea why a blank msg has a length of 13!!
alert(msg);
$("#main").load('?app=$app&func=$func&sub=ajax&ajaxSub=edit_project&cat=' + cat + '&proj_id=' + $proj_id).fadeIn('fast');
}
else {
$("#main").load('?app=$app&func=$func&sub=ajax&ajaxSub=project_detail&cat=' + cat + '&proj_id=' + $proj_id).fadeIn('fast');
}
}
});
return false;
});