簡體   English   中英

JavaScript json_encode中的PHP數組不起作用

[英]PHP array in javascript json_encode not working

我有一個連接到mysql數據庫的php頁面,執行查詢,並將其結果作為數組存儲為會話變量。

$_SESSION['array1']=$array1;

相同目錄下的另一個php頁面會收到此變量,如下所示:

session_start();
$array1= $_SESSION['array1'];

現在,在同一個php頁面中,我有一個javascript代碼,打算訪問此$ array1並打印其值。 我在網上發現了類似的問題,並且了解json_encode函數,但無法完成。 碼:

<script type="text/javascript">
var jsarray= <?php json_encode($array1); ?>;
document.write (jsarray[2]);   </script>

我只是想通過javascript打印數組的第二個索引,但還沒有做到這一點。 什么都沒有顯示。 我可以看到我可以使用php在第二頁上打印數組,但是我需要JavaScript代碼才能訪問該數組。 如果我在javascript代碼中為jsaraay提供值,例如:

var jsarray=[1,2,3,4,5];

我打印第二索引,

document.write(jsarray[2]);

輸出正確。 我想以相同的方式訪問php數組。 請幫忙?

您需要echo顯json:

var jsarray= <?php echo json_encode($array1); ?>;

在線樣本在這里

如果我寫

$array = [1, 2, 3];
print('<script> jsarray = ' . json_encode($array) . ';</script>');

那么我可以在我的JavaScript中訪問jsarray

請注意, jsarray[2]返回第三個索引,而不是第二個索引(索引從0開始)。 您還可以檢查JavaScript控制台(在Chrome + Firefox上為F12,然后選擇控制台選項卡)是否有錯誤。

嘗試這種方式:

<script>
var jsArray = ["<?php echo join("\", \"", $array1); ?>"];
alert(jsArray);
</script>

那應該工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM