2011-01-04 43 views
23

Tôi đang sử dụng mã jQuery này:nhiều giá trị lợi nhuận từ PHP với jQuery AJAX

$.ajax 
({ 
    type: "POST", 
    url: "customerfilter.php", 
    data: dataString, 
    cache: false, 
    success: function(html) 
    { 
     $(".custName").html(html); 
    } 
}); 

Làm thế nào tôi có thể làm một cái gì đó như thế này: $(".projDesc").html(html1); Vì vậy, tôi có thể chia các kết quả trả vào hai yếu tố html?

echo "<p>" .$row['cust_name']. "</p>"; 

thats PHP Tôi đang sử dụng và tôi muốn để echo một tuyên bố mà tôi có thể đưa vào một phần tử HTML

Liệu điều này làm cho ý nghĩa?

Trả lời

54

Sử dụng json_encode() để chuyển đổi một mảng kết hợp từ PHP thành JSON và sử dụng $.getJSON(), sẽ trả về một mảng Javascript.

Ví dụ:

<?php echo json_encode(array("a" => "valueA", "b" => "valueB")); ?> 

Trong javascript:

$.getJSON("myscript.php", function(data) { 
    alert("Value for 'a': " + data.a + "\nValue for 'b': " + data.b); 
}); 
+0

Tuyệt vời! Cảm ơn bạn rất nhiều vì gợi ý tuyệt vời đó! :) – drpelz

+1

Bạn có sử dụng .getJson bên trong chức năng thành công của bài đăng ajax hoặc hoàn toàn riêng biệt không? – Arken

+0

@Arken Tôi không chắc chắn ý của bạn là gì. 'getJSON()' nhận một hàm xử lý URL và thành công nhận dữ liệu được giải mã làm đối số của nó. Bạn không cần gọi lại trong trình xử lý, vì yêu cầu đã được thực hiện. –

3

Tại sao bạn không trả lại đối tượng JSON. Bằng cách này bạn có thể dễ dàng đặt nhiều kết quả khác nhau bên trong phản hồi ajax.

41

Hãy trở lại câu trả lời của bạn JSON, bạn sẽ cần phải thay đổi jQuery của bạn với điều này, vì vậy các datatype dự kiến ​​là json:

$.ajax 
({ 
    type: "POST", 
    url: "customerfilter.php", 
    dataType: 'json', 
    cache: false, 
    success: function(data) 
    { 
     $(".custName").html(data.message1); 
     $(".custName2").html(data.message2); 
    } 
}); 

Sau đó, bạn cần mã hóa phản hồi của mình dưới dạng JSON Array:

<?php echo json_encode(
     array("message1" => "Hi", 
     "message2" => "Something else") 
) ?> 
+0

dữ liệu: json, phải là dataType: "json" nhưng cảm ơn! – benhowdle89

+0

Đã sửa, cảm ơn. –

+1

Phải là dataType: 'json'. Bạn đang thiếu dấu ngoặc kép. – Stephen305

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