使用json_encode访问js中的php数组

使用json_encode访问js中的php数组,php,javascript,Php,Javascript,我在我的代码中使用php和JS。我的要求是我需要从我的sql数据库中获取值,并动态显示到下拉列表中。我用JS填充下拉列表,但用php获取值(通常的事情)。 因此,我面临的问题是,一旦我从php代码中获得值,并使用json_encode对其进行编码,以访问JS中的数组,它就会像[object]一样显示值 请帮忙。。 谢谢 示例代码:- <?php $result=mysql_query("select Location from servicelist")or die (mysql_erro

我在我的代码中使用php和JS。我的要求是我需要从我的sql数据库中获取值,并动态显示到下拉列表中。我用JS填充下拉列表,但用php获取值(通常的事情)。 因此,我面临的问题是,一旦我从php代码中获得值,并使用json_encode对其进行编码,以访问JS中的数组,它就会像[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();
}

功能添加选项列表(选择框){
对于(变量i=0;i
JavaScript中的对象类似于PHP中的“关联数组”。如果您有一个对象并试图在控制台上写入它,它将计算为字符串“[object]”。如果您想要一个正确的字符串表示,JSON在JavaScript中使用JSON.stringify在PHP
mysql\u fetch\u 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);
}
var areaList=document.drop\u list.areaList;
对于(变量i=0,len=month.length;i
显示生成的代码(PHP执行后)嗨,Janus,请检查代码中的编辑..我尝试了var myJSONText=JSON.stringify(myObject,replacer);那么这个替代者应该是什么呢??如果我尝试将替换器作为字符串使用,它将不起作用。替换器是可选的,看看我们如何将PHP数组转换为JS数组?它起作用了。。我唯一缺少的是我需要获取其值的月份字段后面的列。非常感谢。没问题,重新阅读您的PHP,查询只选择了一个字段,因此您可以使用
$rows=mysql\u num\u rows($result)使其更简单;对于($i=0;$i<$rows;$i++)$output[]=mysql\u fetch\u result($result,$i,0)
那么JavaScript中的
month
变量将是一个字符串数组,因此您可以使用最初使用的JavaScript。