我正在使用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;
});
而不是
length = msg.length;
尝试使用
length = msg.replace(/'s/g,'').length
注意
但是您应该确保<?php
和?>
标签中没有空格或换行符,如果您删除它们会更好。
检查 <?php
和 ?>
标记之外的硬编码空格。我想脚本通过 ajax 调用自己,对吧?