2017-06-06 31 views
-2

我是新来编码,我不知道为什么这不起作用 请解释,所以我可以学习,谢谢。 编辑:移动PHP到顶部仍然没有打印任何东西。JavaScript获取php数组和密钥+正文身份

 <?php 
      //create array 
      $someArray = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43"); 
      //encode array 
      $someJSON = json_encode($someArray); 
      //pritn array 
     ?> 

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
     <script> 
      $(document).ready(function(){ 
       var array = "<?PHP echo $someJSON?>"; 
       var arrayDecode = jQuery.parseJSON(array); 
       $.each(arrayDecode, function(key, value){ 
        $('body').append(key + value + "<br><br>"); 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
    </body> 
</html> 
+0

您打印后,您初始化数组,所以它不会打印的PHP并不需要在身体的任何值 – JiFus

+0

,你可以将它移动到最顶端。 – AbraCadaver

+0

JiFus:在文档加载后使用ready()函数创建一个函数 – MacGruber

回答

1

试试这个。 您需要声明PHP变量在JS脚本中使用之前。 否则该变量没有任何值,它将返回错误。

<!DOCTYPE html> 
<html> 
<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
    <?php 
    //create array 
    $someArray = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43"); 
    //encode array 
    $someJSON = json_encode($someArray); 
    ?> 
<script> 
    $(document).ready(function(){ 
    var array = '<?php echo $someJSON; ?>'; 
    arrayDecode = jQuery.parseJSON(array); 
    $.each(arrayDecode, function(key, value){ 
     $('body').append(key + value + "<br><br>"); 
    }); 
    }); 
</script> 
</head> 
<body> 


</body> 
</html> 
+0

PHP&jQuery将加载,但代码不应该执行直到文档完全加载正确?我的意思是$ .ready();等待直到它完成加载? – MacGruber