2010-03-09 73 views
36

Tôi đang đăng một số dữ liệu bằng ajax. Tôi muốn thao tác dữ liệu đó và quay lại kịch bản lệnh gọi jQuery.Cách trả dữ liệu từ PHP sang cuộc gọi ajax của jQuery

Đây là jQuery tôi:

$.ajax({ 
    type: "POST", 
    url: "somescript.php", 
    datatype: "html", 
    data: dataString, 
    success: function() { 
    //do something; 
    } 
}); 

Đây là somescript.php của tôi trên máy chủ:

<?php 
    //manipulate data 
    $output = some_function(); //function outputs a comma-separated string 
    return $output; 
    ?> 

Tôi làm điều này một cách chính xác về phía máy chủ, và làm thế nào để truy cập vào sự trở lại chuỗi khi cuộc gọi ajax hoàn thành?

+0

Sử dụng thành công: function (data) {alert (dữ liệu);} cảnh báo null. – user191688

Trả lời

60

Tôi đã tìm ra. Cần sử dụng echo trong PHP thay vì trả về.

<?php 
    $output = some_function(); 
    echo $output; 
?> 

Và JQ:

success: function(data) { 
    doSomething(data); 
} 
+0

nếu '$ output' là một mảng, bạn sẽ trả về mảng đó như thế nào? –

9

Đó là một cuộc tranh cãi thông qua với chức năng thành công của bạn:

$.ajax({ 
    type: "POST", 
    url: "somescript.php", 
    datatype: "html", 
    data: dataString, 
    success: function(data) { 
    alert(data); 
    } 
}); 

Chữ ký đầy đủ là success(data, textStatus, XMLHttpRequest), nhưng bạn có thể sử dụng chỉ số đầu tiên ông nếu đó là một chuỗi đơn giản quay trở lại. Như mọi khi, see the docs for a full explanation :)

+0

Chính xác! Tôi thấy rằng bạn đã đánh bại tôi với nó ... – Aaron

2

Vâng, cách bạn đang làm là hoàn toàn hợp pháp. Để truy cập dữ liệu đó ở phía máy khách, hãy chỉnh sửa hàm thành công của bạn để chấp nhận tham số: dữ liệu.

$.ajax({ 
    type: "POST", 
    url: "somescript.php", 
    datatype: "html", 
    data: dataString, 
    success: function(data) { 
     doSomething(data); 
    } 
}); 
+0

Tôi nghĩ như vậy, nhưng cảnh báo (dữ liệu) là popping lên null. Và tôi biết $ đầu ra trong PHP không phải là null. Tôi sẽ thử textStatus. – user191688

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