阿贾克斯PHP的MySQL检索确认,当插入数据
问题描述:
我有以下Ajax调用通过托管服务器上的PHP文件发送表单到MySQL数据库:阿贾克斯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文件。 我怎么能这样做?谢谢!
答
拥有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脚本以使用jQuery允许的ajax方法返回正确的HTTP状态代码(例如,如果出现错误,则返回500)并检查该脚本。
答
首先,从另一台服务器调用PHP会给你的错误,如果你不与JSONP调用。
而对于接下来的部分,如果你的php文件得到任何错误,由于连接中断时,可以通过从PHP响应和jQuery的Ajax回调函数成功得到它发送错误。
此外,您可以在回调函数中获取消息,并通过javascript警报消息显示它。
但是如果ajax没有达到php会发生什么?我怎么能发现这个错误? – user1820705 2013-02-20 20:08:58
我相信你可以在ajax方法中设置一个超时:如果请求超时,将会调用一个“错误”函数,所以你可以在那里处理它。 – ChrisC 2013-02-20 21:33:37