2011-06-30 64 views
2

我有一個非常簡單的JSON對象看起來像下面從json_decode檢索的任何值:回聲將不會顯示()

var data = 
{ 
    "id" : 1 
} 

我然後在PHP解碼此:

$decoded_data = json_decode(stripslashes($_POST['data'])); //this works 
$id = intval($decoded_data->id); //in my debugger this is equal to 1 as expected 

我然後繼續將$ id變量傳遞給查詢數據庫並返回一組「子活動」的函數

$sub_activities = alp_get_all_sub_activities($id); //this function works as expected and returns the correct result set 

現在,我對指定的$ id的子活動,我嘗試使用一個循環來訪問它們:

foreach ($sub_activities as $activity) { 
    echo __("<td><a id='" . $activity->id . "' href='' title='Activity'><div style=' border: 3px solid purple; width: 200px; height: 200px; overflow: scroll;'>" . $activity->name . "<br />" . $activity->id . "<br />" . $activity->description) . "</div></a></td>"; 
} 

我的問題是:回聲無顯示時的$ id設置爲INTVAL($ decoded_data-> ID) ,但是當我硬編碼$ id = 1時,一切按預期工作,並顯示在我的瀏覽器中。我不太清楚如何解決這個問題,因爲我的調試器告訴我,當我設置$ id = intval($ decoded_data-> id); $ id等於1.我可以用這個數字做算術,它看起來像任何整數一樣,但由於某些原因,echo和print()不會顯示任何東西。

如果有人有任何見解,我會非常感謝您的意見。

+0

如何從db - assoc,num或兩者中獲取數組?你有沒有嘗試打印sub_activities作爲一個數組(使用print_r)? –

+0

我不知道,沒有辦法知道,因爲我們不知道'__()'函數做了什麼。你有沒有嘗試過使用'true'作爲json_decode的第二個參數? – Rahly

+0

AR - 我正在使用wordpress的db函數get_results()來檢索表的全部內容 - 它似乎返回爲二維關聯數組: –

回答

0

嘗試訪問這樣的值:

$id = $decoded_data->{'id'}; 
$id = (int)$decoded_data->{'id'}; 
$id = intval($decoded_data->{'id'}); 
$id = (int)$decoded_data->id; 

取而代之的是:

$id = intval($decoded_data->id); 

更多這一點是JSON治療整數作爲布爾思考?你可以試試

var data = 
{ 
    "id" : "1" 
} 
+0

Phill謝謝你的建議!我已經嘗試了以上所有結果。我也嘗試將不同的數字傳給id,但仍然沒有改變。 –