问候语stackoverflow社区。我是一个很长时间的潜伏者,第一次海报。我花了好几个小时来研究,试图克服下面的问题,显然没有成功,因为我在这里发布。应该指出的是,我只用jQuery(或任何JS)编写了几个月的代码。我的目标是:用.ajax()提交一个简单的表单,然后提醒(成功!)并返回true(重新加载页面),如果返回的成功数据=='成功',或填充一个div带有错误消息,否则返回false。从jQuery .ajax()评估成功数据并根据结果返回true/false
我已经尝试了许多不同的方法,在我的研究中发现,但不管我尝试过什么,我都可以获得成功的评估:数据返回true。
这里是我的最新尝试:
$(document).ready(function() {
$('#error').hide();
$("#submit_result").submit(function() {
var postString = $('#submit_result').formSerialize(); /* Function from jQuery.form.js */
$.ajax({
url: 'inc/submit_speedtest.inc.php',
type:'POST',
data:postString,
success: function(msg) {
$('#error').html(msg);
},
error:function() {
$('#error').html('Error validating CLid!');
}
});
if ($('#error').html() == 'Success') {
alert('Done');
return true;
}
$('#error').show();
return false;
});
});
一切都很正常,除了:
if ($('#error').html() == 'Success') {
alert('Done');
return true;
}
该测试从不计算为true。我已经尝试了很多不同的方式,包括像submit_speedtest.inc.php的
if $("#error:contains('Success')") {
内容:
<?php
session_start();
include('lib.inc.php');
restrict_unauthorized();
if(!empty($_POST['clid'])) {
$clid = trim($_POST['clid']);
$result = check_clid($clid);
echo $result;
}else{
echo "No CLid!";
}
?>
的check_clid()函数运行一个简单的MySQL查询,以确保CLID存在。如上所述,这似乎工作正常
我希望这一切都有道理,我非常感谢任何帮助的stackoverflow社区可以提供给我。
编辑
谢谢两位您的输入。我能够从你的回答中收集有用的信息。你让我更好地理解了回调如何工作。
这里是jQuery代码我结束了:
$(document).ready(function() {
$('#status_msg').hide();
$("#submit_result").submit(function(e){
e.preventDefault();
var postString = $('#submit_result').formSerialize();
$.ajax({
url: 'inc/submit_speedtest.inc.php',
type:'POST',
data:postString,
success:function(msg) {
$('#status_msg').html(msg);
$('#status_msg').show();
},
error:function() {
$('#status_msg').html('<font color="red">Error validating CLid!</font>');
$('#status_msg').show();
}
});
});
});
PHP所从事的工作的休息,这一切工作正常。
再次感谢。