2011-11-25 36 views
9

Tôi đang gặp sự cố khi lấy lại dữ liệu từ tệp PHP của mình. Tôi đoán tôi không thực sự hiểu các tham số dữ liệu của chức năng jquery này vì vậy tôi chỉ đi ra một số hướng dẫn.Ajax PHP Jquery - ghi lại dữ liệu trở lại

Jquery

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

Bây giờ từ sự hiểu biết của tôi test: tuyên bố biến được sử dụng trong php và 1 là giá trị trong biến đó. Nhưng tôi không hoàn toàn chắc chắn ...

Dưới đây là PHP tôi

$item1 = $_POST['test']; 

    echo $item1; 

Bây giờ nó chỉ cho là để cảnh báo giá trị đó vì vậy tôi biết nó được ít nhất trở về một cái gì đó nhưng trong cảnh báo nó chỉ là trống vì vậy tôi mất giá trị ở đâu đó, nhưng ở đâu?

Trả lời

14

sử dụng $_REQUEST nó sẽ xử lý cả GETPOST

$item1 = $_REQUEST['test']; 

theo yêu cầu ajax mặc định là GET loại, hoặc chỉ định expilicitly các type như

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

hoặc sử dụng $_GET như

item1 = $_GET['test']; 

    echo $item1; 
+0

đọc tài liệu http://api.jquery.com/jQuery.ajax/ – robert

+0

awwww người đàn ông nhìn chằm chằm vào mặt tôi toàn bộ thời gian. Tốt để biết nó GET theo mặc định mặc dù. Cảm ơn! –

+0

bạn được chào đón ':)' – Rafay

0

add phương thức POST:

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

bạn quên đặt phương thức POST/GET mà bạn đang gửi dữ liệu đến tập tin php của bạn.

$.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

Cách đúng:

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

Sau đó kịch bản jquery:

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

Nếu bạn đang cố gắng để có được thông tin từ các tập tin php, I don' t nghĩ rằng trường dữ liệu là bắt buộc. Đây là những gì tôi có.

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

và như xa như php đi ..

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

Alert box on execution

1

Đây là công việc đối với tôi

đang 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> 

mã php (kiểm tra.php)

<?php 

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

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

Được gặp khó khăn về vấn đề này trong một thời gian, vấn đề của tôi là không phải trên js nhưng trong php script: báo cáo lỗi đã được thiết lập để E_ALL - mà dường như khối nó từ trở về dữ liệu đến các cuộc gọi AJAX. Đoán của tôi là nó in thông báo trước tiếng vang cuối cùng và chặn tất cả. Điều kỳ lạ là nó đã không in tôi bất kỳ thông báo trong các bản ghi tôi thiết lập để có được để dưới cùng của điều này.

Đã thay đổi thành E_ERROR và giờ đây hoạt động như một sự quyến rũ.

Các vấn đề liên quan