簡體   English   中英

使用json_encode訪問js中的php數組

[英]accessing php array in js using json_encode

我在代碼中使用php和JS。我的要求是我需要從my-sql數據庫中獲取值並動態顯示在下拉列表中。我在JS中填充下拉列表,但用php來獲取值(這是平常的事情) 。 因此,我面臨的問題是,一旦我從php代碼獲取值並使用json_encode對其進行編碼,以訪問JS中的數組,它就會向我顯示類似於[object Object]的值。

請幫助..謝謝。

示例代碼:-

<?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();
}

在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);
}

JavaScript中的對象類似於PHP中的“關聯數組”。 如果您有一個對象,並嘗試在控制台上編寫該對象,它將求值為字符串“ [object Object]”。 如果您想要正確的字符串表示形式,請使用JSON.stringify在您的JavaScript中再次對其進行JSON編碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM