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 回答