阿贾克斯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)并检查该脚本。

+0

但是如果ajax没有达到php会发生什么?我怎么能发现这个错误? – user1820705 2013-02-20 20:08:58

+0

我相信你可以在ajax方法中设置一个超时:如果请求超时,将会调用一个“错误”函数,所以你可以在那里处理它。 – ChrisC 2013-02-20 21:33:37

首先,从另一台服务器调用PHP会给你的错误,如果你不与JSONP调用。

而对于接下来的部分,如果你的php文件得到任何错误,由于连接中断时,可以通过从PHP响应和jQuery的Ajax回调函数成功得到它发送错误。

此外,您可以在回调函数中获取消息,并通过javascript警报消息显示它。