2011-11-25 85 views
9

我无法从PHP文件中恢复数据。我想我真的不明白这个jquery函数的数据参数,所以我刚刚去了一些教程。Ajax PHP Jquery - 回显数据

jQuery的

$.ajax(
    { 
     url: 'test.php', 
     dataType: 'text', 
     data: {test: '1'}, 
     success: function(data) 
     { 
      window.alert(data); 
     } 
    }) 
从我的理解 test:

现在宣布在PHP中使用的变量,1是该变量的值。但我不能完全肯定...

这里是我的PHP

$item1 = $_POST['test']; 

    echo $item1; 

现在它只是应该,所以我知道它至少是返回的东西,但在警告它只是空白的,所以我要提醒值在某个地方失去了价值,但是在哪里?

回答

14

使用$_REQUEST它将同时处理GETPOST

$item1 = $_REQUEST['test']; 

默认AJAX请求是GET类型,或者指定expilicitly的type

$.ajax(
    { 
     url: 'test.php', 
     type:'POST' 
     dataType: 'text', 
     data: {test: '1'}, 
     success: function(data) 
     { 
      window.alert(data); 
     } 
    }) 

,或者使用$_GET

item1 = $_GET['test']; 

    echo $item1; 
+0

阅读文档http://api.jquery.com/jQuery.ajax/ – robert

+0

awwww男人盯着我整个时间。很高兴知道它默认为GET。谢谢! –

+0

欢迎你':)' – Rafay

0

添加POST方法:

$.ajax(
    { 
     url: 'test.php', 
     dataType: 'text', 
     type: 'post', 
     data: {test: '1'}, 
     success: function(data) 
     { 
      window.alert(data); 
     } 
    }) 
0

你忘了把方法POST/GET通过你的数据发送到你的PHP文件。

$.ajax(
    {   
     type:'POST',   
     url: 'test.php', 
     dataType: 'text', 
     data: {test: '1'}, 
     success: function(data) 
     { 
      window.alert(data); 
     } 
    }) 
0
just add "type" POST or GET  

//example 
$.ajax(
{ 
    url: 'test.php', 
    type: 'POST', 
    data: {test: '1'}, 
    success: function(data) 
    { 
     window.alert(data); 
    } 
}) 
5

正确的方法:

<?php 
$change = array('key1' => 'blabla', 'key2' => '12432rr424234'); 
echo json_encode($change); 
?> 

然后jQuery脚本:

<script> 
$.get("location.php", function(data){ 
    var mydata= $.parseJSON(data); 
    var art1 = mydata.key1; // <----------- access the element 
}); 
</script> 
0

如果你想从php文件的信息,我不t认为数据字段是必需的。这是我的。

   $.ajax(
       { 
        url: 'response.php', 
        type: 'get', 
        dataType:'text', 
        success: function(data){ 
         window.alert(data); 
        } 
       } 

,并尽可能的PHP不用..

<?php 
    echo "1"; 
    echo "2"; 
    echo "3"; 
    echo "4"; 
    echo "5"; 
    echo "6"; 
    echo "7"; 
    echo "8"; 
?> 

Alert box on execution

1

这对我来说

Ajax代码

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script> 
     <title>Test Page</title> 
     <script> 
      $.ajax(
        { 
         url: 'test.php', 
         type: 'POST', 
         dataType: 'text', 
         data: {latitude: '7.15588546', longitude: '81.5659984458'}, 
         success: function (response) 
         { 
          alert(response); 
         } 
        }); 
     </script> 
    </head> 
    <body> 
    </body> 
</html> 
工作3210

php代码(测试。PHP)

<?php 

$lat = $_REQUEST['latitude']; 
$lon = $_REQUEST['longitude']; 

echo 'latitude- '.$lat . ', longitude- ' . $lon; 
?> 
0

一直在挣扎于这一段时间,我的问题是不是在JS但在PHP脚本:错误报告被设置为E_ALL - 这显然是从将数据返回到AJAX调用阻止它。我的猜测是它在最后的回声之前打印通知并将其封锁。奇怪的是,它并没有在我设置的日志中打印出任何通知,以便到达底部。

将其更改为E_ERROR,现在可以像魅力一样工作。