我有一个php数组
$array = array(‘1234’=>”Acme Company”,
“4321”=>”CustomerX”,
”1056=>”CustomerY”,
”1058”=>”google”,
”1059”=>”Yahoo”,
”1060”=>”apple”);
我正在尝试用这些数据创建一个自动完成。所以第一步是在javascript中迭代。
var clients = '<?php echo json_encode($array);?>';
$.each(clients, function(i,el){
alert(i+","+el);
});
当我这样做时,我得到错误:
Uncaught TypeError: Cannot use 'in' operator to search for '2847' in {“1234”:”Acme Company”,”4321”:”CustomerX,”1056”:”CustomerY”,”1058”:”google”,”1059”:”Yahoo”,”1060”:”Apple}
我不明白为什么。如果我是alert(clients)
,它看起来像一个很好的数组…
试试这样,你有错误传递php变量到你的js变量。现在它遍历了所有的数组元素
<?php
$array = ['1234'=>'Acme Company',
'432'=>'CustomerX',
'1056'=>'Customer',
'1058'=>'google',
'1059'=>'Yahoo',
'106'=>'apple'];
$array = json_encode($array);
?>
<script type="text/javascript">
var clients = <?php echo $array; ?>;
console.log(clients);
$.each(clients, function(i,el){
alert(i+","+el);
});
</script>
在每个(
之前使用clients = $.parseJSON(clients);
,并从数字中删除" '
。
var client_parsed = JSON.parse(client);
client_parsed