Ajax Php Mysql在插入数据时检索确认

时间:2013-02-20 19:25:10

标签: php javascript jquery mysql ajax

我有以下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文件托管在另一台服务器上。 我怎么能这样做?谢谢!

2 个答案:

答案 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警告消息显示它。