我有以下ajax调用,通过服务器上托管的php文件将表单发送到mysql数据库:
<script type"text/javascript">
$(document).ready(function(){
$("form#submit").submit(function() {
// we want to store the values from the form input box, then send via ajax below
var fname = $('#fname').attr('value');
var lname = $('#lname').attr('value');
$.ajax({
type: "POST",
url: "jquery-ajax-control.php",
data: "fname="+ fname + "&lname=" + lname,
success: function(){
$('form#submit').hide();
//$('form#submit :input').val("");
$('div.success').fadeIn();
}
});
return false;
});
});
</script>
我的php:
<?php
include ("db.php");
// CLIENT INFORMATION
$fname = htmlspecialchars(trim($_POST['fname']));
$lname = htmlspecialchars(trim($_POST['lname']));
$addClient = "INSERT INTO clients (fname,lname) VALUES ('$fname','$lname')";
mysql_query($addClient) or die(mysql_error());
?>
在成功函数上我想从php或mysql中检索一条警告消息,以确保数据被插入到数据库中,因为ajax即使连接失败也会成功,我将php文件托管在另一台服务器上。 我怎么能这样做?谢谢!
答案 0 :(得分:1)
让jquery-ajax-control.php脚本返回此信息(可能以JSON字符串编码),然后在成功函数中解析它。
以下示例将在警报中显示PHP脚本的输出(如果请求成功):
$.ajax({
type: "POST",
url: "jquery-ajax-control.php",
data: "fname="+ fname + "&lname=" + lname,
success: function(message) {
alert(message);
}
});
您只需要更改PHP脚本,根据发生的情况返回消息。
您还可以修改PHP脚本以返回正确的HTTP状态代码(例如,如果出现错误则返回500)并使用jQuery允许的各种回调函数检查ajax方法。
答案 1 :(得分:0)
首先,如果不使用jsonp进行调用,从另一台服务器调用php会出错。
对于下一部分,如果你的php文件由于连接失败而得到任何错误,你可以通过php的响应发送错误并从jquery ajax回调函数成功获取它。
此外,您可以在回调函数中获取消息并通过javascript警告消息显示它。