1

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

4

2 回答 2

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 方法的各种回调函数来检查它。

于 2013-02-20T19:31:22.647 回答
0

首先,如果您不使用 jsonp 进行调用,则从另一台服务器调用 php 会出现错误。

对于下一部分,如果您的 php 文件由于连接断开而出现任何错误,您可以通过 php 的响应发送错误并从 jquery ajax 回调函数成功获取它。

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

于 2013-02-20T19:34:56.150 回答