2011-12-09 33 views
5

Kịch bản của tôi trả về giá trị không xác định từ php json_encode tôijson_encode trở lại không xác định

index.php

<?php 
    $returnThis['user'] = "Robin098"; 
    $returnThis['id'] = "08465"; 

    echo json_encode($returnThis); 
?> 

sample.html

<head> 
    <script> 
     function clickHere(){ 
      $.get("index.php", function(data) { 
      alert(data.user); 
      }); 
     } 

    </script> 
</head> 
     <body> 
     <input type="button" onclick = "clickHere();" value="ClickHere!"/> 
     </body> 

Làm thế nào tôi có thể sửa lỗi này?

+0

Biến '$ aReturn' đến từ đâu trong tập lệnh PHP của bạn? Bạn đi từ '$ returnThis' sang' $ aReturn' mà không giải thích. – Jasper

Trả lời

3

Sử dụng phương thức jQuery.getJSON thay vì .get, nếu bạn muốn phân tích cú pháp JSON của mình. Ngoài ra, hãy đảm bảo rằng thư viện jQuery được tải chính xác.

function clickHere(){ 
     $.getJSON("index.php", function(data) { 
      alert(data.user); 
     }); 
    } 

Hiện tại, bạn đang sử dụng $.get(url, function(data){...}). Trong bối cảnh này, data là một chuỗi chứa câu trả lời từ máy chủ:

{"user":"Robin098","id":"80465"} 

Sử dụng alert(data) bên trong hàm sẽ hiển thị chuỗi này.

+0

Xin cảm ơn rất nhiều, :) –

1

Dường như bạn đang thiết lập $returnThis, nhưng sau đó quay lại $aReturn. Bạn không muốn:

$returnThis['user'] = "Robin098"; 
$returnThis['id'] = "08465"; 

echo json_encode($returnThis); 
+0

Xin lỗi đã nhập sai. –

+0

@RobinCarloCatacutan - trong trường hợp đó, có vẻ như Rob W trả lời nó những gì bạn muốn. hoặc .getJSON hoặc $ .ajax với dataType được đặt thành json –

+0

Không, tôi chỉ nhập sai mã của tôi ở đây, không giống với mã thực của tôi. Bạn đã giúp tôi. tnx. –

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