2016-04-22 48 views
1

我使用webservice创建一个PHP数组$ result,但是当传递给javascript和JSON.parse时,没有结果。我是一个PHP和JS数组的新手,已经做了很多谷歌搜索,但无法找到答案。帮助欢迎!JSON解析使用PHP的JSON

首先输出在浏览器中,当PHP数组打印出来,但JavaScript不输出任何东西: -

 

1) Results of PHP array print Array ( [hotels] => Array ( [codigo] => LIMHBM [fecha] => 2016/9/15 [cannoc] => 1 [canhab] => 1 [canpax] => 2 [estado] => OK ) ) 2) Results of JSON parse: none

相关的代码部分: -

1) Results of PHP array print 
<pre><?php print_r($result); ?></pre> 

2) Results of JSON parse: 
<span id="demo">none</span> 

<script type="text/javascript"> 
var result = JSON.parse('<?php echo json_encode($result) ?>'); 
document.getElementById("demo").innerHTML = result.hotels[0].codigo + " " + result.hotels[0].estado; 
</script> 

回答

1

其实你的代码是正确的,直到JavaScript代码的最后一行是: -

document.getElementById("demo").innerHTML = result.hotels[0].codigo + " " + result.hotels[0].estado; 

将其更改为: -

document.getElementById("demo").innerHTML = result.hotels.codigo+ " " + result.hotels.estado; 

实施例: -

<?php 

$result = Array 
(
    'hotels' => Array 
     (
      'codigo' => 'LIMHBM', 
      'fecha' => '2016/9/15', 
      'cannoc' => 1, 
      'canhab' => 1, 
      'canpax' => 2, 
      'estado' => 'OK' 
     ) 

); 
?> 
1) Results of PHP array print 
<?php echo "<pre/>";print_r($result); ?> 

2) Results of JSON parse: 
<span id="demo">none</span> 

<script type="text/javascript"> 
var result = JSON.parse('<?php echo json_encode($result) ?>'); 
console.log(result); // to just show you te output in console 
document.getElementById("demo").innerHTML = result.hotels.codigo+ " " + result.hotels.estado; 
</script> 

输出: - http://prntscr.com/avm729

对于多维数组的帮助,检查: -

http://prntscr.com/avmcp3

+0

大,这工作得很好,而且是答案为止就我而言。如果不是“酒店”阵列中的一家酒店,而是有几家,那么使用codigo [1],estado [1]等是否正确? – Paul

+0

是的,那你需要去那个。 –

+0

再次感谢,完美! – Paul

0

该位毫无意义的:

var result = JSON.parse('<?php echo json_encode($result) ?>'); 

JSON已经是有效的JavaScript,所以有NO需要解析它。所有你需要做的是倾倒出来直接进入代码块:

var result = <?php echo json_encode($result); ?>; 
+0

谢谢,我试过,但结果仍然是空 – Paul