2012-02-29 49 views
2

我使用PHP和JS在我code.My要求訪問在JS PHP數組是我需要從我的-SQL數據庫中讀取值並顯示到下拉列表dynamically.I正在填充與JS下拉但通過php獲取價值(通常的事情)。 所以我面臨的問題是,一旦我從php代碼中獲取值並使用json_encode對它進行編碼以訪問JS中的數組,它就會顯示出像[object Object]的值。使用json_encode

請幫助.. 感謝。

示例代碼: -

<?php 
$result=mysql_query("select Location from servicelist")or die (mysql_error()); 
while($row = mysql_fetch_array($result)) 
$output[]=$row; 
    $row=mysql_fetch_assoc($result); 
$output[]=$row; 

?> 
<script language="javascript"> 
function addOption_list(selectbox){ 
<?php echo 'var month='.json_encode($output);?> 

for (var i=0; i < month.length;++i){ 
addOption(document.drop_list.AreaList, month[i], month[i]); 
//Once the value of the area will get selected we will call sub area based 
//on the area selected from the db 
} 
addSubAreaList(); 
} 
+0

我們展示產生代碼(後PHP執行) – 2012-02-29 12:47:57

+0

嗨劍鋒, 請檢查編輯的代碼.. – 2012-02-29 13:01:31

回答

0

在JavaScript對象是類似於PHP 「關聯數組」。如果你有一個對象,並且你試圖將它寫在控制檯上,它將計算字符串「[object Object]」。如果您想要正確的字符串表示形式,JSON會使用JSON.stringify在您的JavaScript中再次對其進行編碼。

+0

我試圖VAR myJSONText = JSON.stringify(myObject的,替代品); 那麼替代者應該是什麼? 如果我嘗試的替代品作爲一個字符串它亙古不變的工作.. – 2012-02-29 13:07:25

+0

的替代品是可選的,請參閱https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON/stringify – 2012-02-29 15:20:43

+0

如何我們得到了PHP數組到這裏的JS數組? – 2012-05-07 18:41:11

1

在PHP mysql_fetch_assoc($result);返回一個關聯數組,所以在JavaScript中你month變量將是格式:

var month = [{field: 'value', otherField: 'value'}]; 

因此你的循環需要使用類似:

var areaList = document.drop_list.AreaList; 
for (var i=0, len = month.length; i < len; ++i){ 
    addOption(areaList, month[i].field, month[i].otherField); 
} 
+0

使用JSON編碼它的工作.. 我唯一缺少的是月字段,其中我需要獲取的值之後,列。 非常感謝.. – 2012-02-29 13:40:34

+0

沒問題,重新閱讀你的PHP,查詢只挑選出一個領域,所以你可以把它簡單使用'$行= mysql_num_rows($結果);對於($ i = 0; $ i <$ rows; $ i ++)$ output [] = mysql_fetch_result($ result,$ i,0);'那麼JavaScript中的'month'變量就是一個字符串數組,可以使用你原來的JavaScript。 – steveukx 2012-02-29 13:45:19