在javascript中从php脚本获取数据

时间:2012-05-02 08:12:41

标签: php jquery ajax

我尝试在JavaScript中收到PHP响应。

我的PHP看起来像这样:

some code

    if(...) echo "1";

    else echo "2";

JavaScript的:


    function GetChoice() {
        var returned="";
        $.ajax({
            async: false,
            cache: false,
            url: "http://mydomain.com/script.php", 
            type: "POST",
            dataType:"text",
            success: function(data) { 
                returned = data;
            }
        });
        return returned;
    }

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

GetChoice()没有任何回报。怎么了?

UPD:如果javascript和php脚本在同一台服务器上,它可以正常工作。我的脚本在不同的域中。

6 个答案:

答案 0 :(得分: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);
        }
    });
}

答案 1 :(得分:1)

试试这个:

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"];        
?>

它的工作......!

答案 2 :(得分:1)

问题是,在您的示例中,$ .ajax立即返回,并且在您传递的函数甚至调用成功回调之前执行下一个语句return result;。 这是解释。 How do I return the response from an asynchronous call?

运气,

答案 3 :(得分:0)

GetChoice()在成功回调之前不会返回任何内容。

回调是您定义为成功参数的函数,在从服务器请求数据之前不会触发。

这是异步的(AJAX中的A)所以其余的代码继续导致GetChoice()函数在回调运行之前返回

答案 4 :(得分: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个文件。刚刚在我的编辑器中对此进行了测试并且有效。

答案 5 :(得分:0)

function GetChoice() {
    var returned="";
    $.ajax({
        url: "../script.php", 
        type: "POST",
        success: function(data) { 
            returned = data;
        }
    });
    return returned;
}

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