2014-02-27 70 views
0

我有以下json編碼數組,我按如下方式傳遞給JQuery,並且當數組中有元素時一切正常。然而,有些時候數組可能是空的,這取決於一個用戶選擇 ,而這正是我的腳本分解:將空json_encode數組傳遞給JQuery

PHP 
$myleaderarray = [{"Week_count":"3","Userid":"102","Username":"gsd555","MedCondPrimary":"Diabetes"},{"Week_count":"0","Userid":"216","Username":"gsd3","MedCondPrimary":"Cardiac Respiratory"}] 
$count = count($myleaderarray); //1 

JQ 
var myleaderarray = <?php echo $myleaderarray; ?>; // this passes the  array as expected 
console.log(myleaderarray.length); //2 

這是我在控制檯中看到,當json_encoded數組爲空

JQ 
var myleaderarray = ; 
"Unexpected token ';'" 

我似乎無法在JQ中測試此錯誤,所以我必須在服務器端執行此操作,否則我完全錯過了某些操作?謝謝您的幫助。

+1

你能不能請張貼正確的代碼?另外,我沒有看到任何'json_encode'。你的問題是你的字符串是空的,但它應該是'[]'。如果你傳遞一個適當的數組到json_encode應該總是有效的。但我真的不能告訴你你要做什麼,因爲你在這裏發佈的代碼是搞砸了 – x4rf41

回答

0

變化:

var myleaderarray = `<?php echo $myleaderarray; ?>;` 

var myleaderarray = "<?php echo $myleaderarray ?>"; 
+0

報價在這裏沒有什麼用處。當它是一個字符串,你將不得不解析它,但JavaScript可以簡單地使用json值。另外,你需要逃避它。 – x4rf41

+0

在發佈這個問題之前,我嘗試了雙引號,並且當我收到以下SyntaxError:「期待一個標識符,但找到'Week_count'而不是」。 Week_count是數組 – user2232681

+0

@ user2232681的第一個密碼,發佈正確的代碼,您將得到正確的答案。第一個PHP行是無效的PHP語法(致命錯誤)。第一個javascript行也是無效的,也是一個語法錯誤,那麼你期望任何人如何幫助你? ('javascript外的字符串是非法字符) – x4rf41

0
$myleaderarray = ['{"Week_count":"3","Userid":"102","Username":"gsd555","MedCondPrimary":"Diabetes"}','{"Week_count":"0","Userid":"216","Username":"gsd3","MedCondPrimary":"Cardiac Respiratory"}']; 
$count = count($myleaderarray); // is now two 

JQ 
var myleaderarray = <?php var_dump($myleaderarray); ?>; // this passes the  array as expected 
console.log(myleaderarray.length);