1

JavaScript で PHP 応答を受信しようとしています。

私のPHPは次のよ​​うになります。

いくつかのコード

    if(...) エコー "1";

    それ以外の場合は "2" をエコーし​​ます。

JavaScript:

    関数 GetChoice() {
        var が返されます="";
        $.ajax({
            非同期: 偽、
            キャッシュ: false,
            URL: "http://mydomain.com/script.php",
            タイプ: "ポスト",
            dataType:"テキスト",
            成功: 関数 (データ) {
                返された = データ;
            }
        });
        戻ります。
    }

    var r = GetChoice();
    アラート(r);

しかし、GetChoice()何も返しません。どうしたの?

UPD: javascript と php スクリプトが同じサーバー上にある場合に機能します。異なるドメインにある私のスクリプト。

4

6 に答える 6

2

これを試して :

temp1.php

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>


  function GetChoice() {
        var returned = "";
        $.ajax({
                async: false,
                cache: false,
                type: "POST",
                url: "http://localhost/temp2.php",
                data: { name: "John"}
                }).done(function( msg ) {                        
                        returned = msg;
                });
         return returned;
    }

    var r = GetChoice();
    alert(r);

</script>

temp2.​​php

<?php

        echo $_REQUEST["name"];        
?>

その作業....!

于 2012-05-02T08:32:42.647 に答える
1

これを試して:

    function GetChoice() {
    var returned = "";
    $.ajax({
        async:false,
        cache:false,
        url:"http://mydomain.com/script.php",
        type:"POST",
        dataType:"text",
        success:function (data) {
            alert(data);
        }
    });
}
于 2012-05-02T08:17:38.843 に答える
1

問題は、あなたの例では $.ajax がすぐに返され、次のステートメント return result; が、成功コールバックとして渡した関数が呼び出される前に実行されることです。ここに説明があります。 非同期呼び出しから応答を返すにはどうすればよいですか?

幸運、

于 2017-02-17T20:56:00.993 に答える
0

これがスクリプトです

<script type="text/javascript">
$.ajax({
async:false,
cache:false,
url:"http://path.com/to/file",
type:"POST",
dataType: "html",
data: 'data',
success: function(data){
    alert(data);
}

});

PHPファイルに次のコードを記述します

<?php

function test()
{
    $str = 'This is php file';
    return $str;
}

echo test();

?>

PHP ファイルへのパスが正しいことを確認し、スクリプトを別の PHP ファイルに追加します。基本的に2つのファイルが必要です。これを私のエディターでテストしたところ、動作します..

于 2015-05-05T05:15:40.067 に答える