2012-02-29 45 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