ajax调用成功但在php中没有值

时间:2017-04-29 12:15:14

标签: javascript php jquery ajax

ajax成功函数警报数据但在php端没有数据,GET数组是空的

<script type="text/javascript">
    var  array={
    name:"amr",
    age:22
}
array =JSON.stringify(array);
$.ajax({
    url :"new.php",
    type : "GET",
    data :  {action:array},
    success: function(response){
        alert(response);
    },

});
</script>



<?php 
$var =json_encode($_GET['action']);
echo $var;
?>

enter image description here

1 个答案:

答案 0 :(得分:0)

PHP代码在服务器上执行,然后PHP的输出发送到客户端,客户端执行JavaScript,而不是PHP。在您的示例中,您有两个页面ajax.phpnew.php,在此示例中,您不需要在ajax.php页面中使用PHP,因为一旦PHP出现在ajax.php中在服务器上执行,输出发送到客户端,它不会再改变。

此代码:

<?php 
$var =json_encode($_GET['action']);
echo $var;
?>

应该在您的new.php文件中,只有那里,ajax.php将从客户端new.php调用,它将执行您的PHP并将输出发送回客户端,一次您可以随意使用客户端上的输出,例如,这可能是ajax.php中的源代码:

<script type="text/javascript">
    var  array={
    name:"amr",
    age:22
}
array =JSON.stringify(array);
$.ajax({
    url :"new.php",
    type : "GET",
    data :  {action:array},
    success: function(response){
    /*
     * This will write on your page (ajax.php) the response 
     * from the server, note that this is done with javascript,
     * not with PHP
     */
        document.write(response);
    },

});
</script>

您还可以将文件ajax.php重命名为ajax.html,因为此页面上不需要PHP。