2

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;
}); 
4

2 に答える 2

0

タグの外側<?phpにハードコードされたスペースがないか確認してください。?>スクリプトはajaxを介して自分自身を呼び出すと思いますよね?

于 2012-06-14T08:37:00.890 に答える
0

それ以外の

length = msg.length;

で試してみてください

length = msg.replace(/\s/g,'').length

ノート

<?phpただし、タグ内にスペースや改行がないことを確認する必要があり?>ます。それらを削除した方がよいでしょう。

于 2012-06-14T08:32:56.647 に答える