2017-07-19 49 views
0

因此,我目前正在爲我外家人的某個網站做一些編碼工作,我不得不創建一個條形圖,現在我需要用他們的SQL數據庫中的數據填充它。首先,我只是回顯數組是這樣的:如何從PHP數組獲取值到Javascript數組?

PHP:

<?php 
$exampleArray = ["212", "33", "7"] 
?> 

和JS:

<script> var jExampleArray = <? echo json_encode($exampleArray);?>; </script> 

然後我用jExampleArray在我的條形圖代碼。現在我非常高興,但他們說它需要更安全(涉及他們的公司),我必須找到一種方法,確保沒有人能夠在瀏覽頁面上的代碼時看到數據。我想過使用Ajax,但是它不適用於我。我得到它來提醒我陣列,但無法用它填充一個Javascript數組。

我從來沒有做過與JS,PHP或SQL SQL的東西,只在學校學習Java,所以我很笨,我做的大部分東西都是在互聯網的幫助下完成的。幸運的是我至少能夠理解我寫/複製的代碼。

編輯:[]一個JS數組沒有{}

+5

ExampleArray不是數組。 – aldrin27

+0

此外,雖然它可能無法在「查看源代碼」中顯示,但IE/Chrome中的簡單F12(開發人員控制檯)將允許他們查看生成的JS代碼,對象和數據。 –

+0

對於它是一個數組,它應該是'$ exampleArray = [「212」,「33」,「7」]'; –

回答

0

一些僞代碼來顯示。如果PHP陣列可在頁面加載使用你如何完成既定目標

$data=array(); 
while($rs=$db->fetch()){ 
    $data[]=array(
     'field_1' => $rs->field_1, 
     'field_2' => $rs->field_2, 
     'field_3' => $rs->field_3 
    ); 
} 

$json=json_encode($data); 


<script> 
    <?php 
     echo "var jExampleArray={$json};"; 
    ?> 
    /* rest of barchart code */ 
</script> 
0

var arr = JSON.parse(responseArray); 
012:
<?php 
$phpArray = array('data1' => 2, 'data2' => 3); 
?> 
<script>var arr = <?php echo json_encode($phpArray); ?>;</script> 

要使用AJAX檢索PHP數組中的JS頁面加載後

+0

'var arr = JSON.parse(responseArray);'不起作用 – Luca

+0

@LucaKiebel JSON.parse是將原始文本轉換爲JS數組(如果格式正確)。更新了指定該方法的線程將與ajax響應一起使用。 – ChristianG

1

創建PHP數組的語法不正確。使用功能json_encode將PHP數組轉換爲Javascript數組和對象。

<?php 

$arr = ['hello', 'world', 'foo', 'bar']; 
$obj = ['hello' => 'world', 'foo' => 'bar']; 

echo 'var Array = ' . json_encode($arr) . PHP_EOL . 
    'var Obj = ' . json_encode($obj, JSON_FORCE_OBJECT) . PHP_EOL; 

將導致以下:

var Array = ["hello","world","foo","bar"] 
var Obj = {"hello":"world","foo":"bar"} 
+0

我試過了,但沒有奏效。它總是說第一行有錯誤$ arr = ..... – estier

+0

您運行的是哪個版本的PHP?通過創建一個只是'echo phpversion()'的文件來查找。如果它小於5.4,則需要使用'$ arr = array('hello',etc')創建數組;' – mulquin

+0

謝謝!似乎我實際上使用5.2 – estier