簡體   English   中英

腳本類型=“ text / javascript”變量無法捕獲PHP回顯的JSON

[英]Script type=“text/javascript” variable not catching PHP echoed JSON

我正在開發一個PHP Web應用程序,該應用程序從MYSQL數據庫檢索數據負載,然后使用PHP的json_encode將關聯數組轉換為JSON。

<script type="text/javascript">
    var json = <?php
    // get loads of data from MYSQL database, store in $array
    echo(json_encode($array));
    ?>;
</script>

以前似乎可以正常工作,但是現在在chrome中按F12鍵並檢查控制台時,JavaScript拋出錯誤,因為它無法識別<?php的開頭<。

我發現,如果我從腳本標記中刪除type =“ text / javascript”,它會正常運行。

編輯:

如果我使用以下方法,它將起作用:

<script>
    var json = <?php
    // get loads of data from MYSQL database, store in $array
    echo(json_encode($array));
    ?>;
</script>

似乎在script標簽中添加類型會阻止PHP在發送給客戶端設備之前執行。

為什么是這樣?

如果您使用以下標簽,則該標簽實際上可以用於運行PHP代碼:

<script language="php"> echo("hello"); </script>

我假設在script標記中設置類型會使其僅評估標記中的一種​​語言-保留該類型而無需保留類型則使其保留多語言腳本標記。

資料來源: http : //php.about.com/od/advancedphp/qt/mixed_scripting.htm

因此,使用類似

<script>
var json = <?php
echo($var);
?>;
</script>

將評估兩種語言(顯然是PHP服務器端),但是在script標記中設置類型或語言將阻止評估標記中的其他語言/類型。

暫無
暫無

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

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