1

サーバーでホストされているphpファイルを介してフォームをmysqlデータベースに送信するための次のajax呼び出しがあります。

 <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文字列にエンコードされている)を返してもらい、success関数で解析します。

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 に答える