2012-09-22 41 views
1

我不知道爲什麼它不工作?使用JSON,傳遞變量從PHP到JavaScript

check_login.php

<?php 
session_start(); 
$data = array("username" => "true"); 
echo json_encode($data); 
?> 

我的js文件 VAR LINKNAME;

$.ajax({ 
    type: "POST", 
    url: "check_login.php", 
    dataType: "json", 
    success: function(json){ 
    if(json.username != "true") 
    { 
     //do something 
    } 
    } 
}); 

我試圖在檢查用戶是否已登錄到php文件中,例如傳遞會話變量之後,獲取用戶名。但目前傳遞一個字符串似乎已經有問題了。任何知道我在這裏做錯了什麼?

上面的代碼仍然不能正常工作。任何人都想在這裏幫助我?

回答

4

您的PHP代碼中有錯誤。第3行不需要方括號。 而且,當然你應該使用echo json_encode($ data);

+0

還不行 –

+0

您應該檢查服務器與谷歌瀏覽器Firefox或開發工具如Firebug工具的響應。這樣你可以看到服務器是否輸出任何東西。 – markz

-1
return json_encode($data); 

我認爲你必須返回數據而不僅僅是json編碼它!

+0

仍然無效 –

+0

它的回聲json_encode($數據),不返回 – markz

+0

返回不會回顯輸出 –

1
`if(json.data.username != "true")` is wrong you do not have data object 

    `if(json.username != "true")` try this 
1

您應該回顯json數據,以便使用ajax獲取的頁面包含字符串數據。

<?php 
session_start(); 
$data = array("username" => "true"); 
echo(json_encode($data)); 
?> 

$.ajax({ 
    type: "POST", 
    url: "check_login.php", 
    dataType: "json", 
    success: function(json){ 
     console.log(json) 
    } 
}); 

還有些時候你可能需要在PHP中設置標題的內容類型爲json。

+1

打開控制檯在鉻或mozilla查看console.log這通常是通過點擊任何地方在webbrowser然後選擇檢查元素。之後你會發現一個名爲console的選項卡,其中顯示日誌。 –

+0

接受爲答案,如果它解決了謝謝。 :D –

+0

仍然不知道爲什麼它不起作用 –

0

嘗試發送頭

header("Content-Type: application/json", true); 
print json_encode($data);