2017-06-06 37 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