4 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果數(shù)據(jù)只在頁面加載時(shí)需要一次,您可以在 PHP 代碼中使用腳本塊,然后使用 JS 函數(shù)來獲取它。但是,如果數(shù)據(jù)根據(jù)用戶與頁面的交互進(jìn)行更新,請(qǐng)記住,如果不使用 AJAX,則無法將數(shù)據(jù)從 PHP 中的服務(wù)器端發(fā)送到 JS 中的客戶端。
我建議您閱讀并使用以下 3 種方法之一:
XHR?獲取?或axios

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊
您正在使用引號(hào)將字符串聲明為可變數(shù)據(jù)。
請(qǐng)刪除引號(hào),這將符合您的期望。
因此,您的代碼應(yīng)替換為以下幾行。
var data =<?php echo $data ?>;

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
var data = <?php echo $data ?>;
或者
var data = JSON.parse("<?php echo $data ?>");

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
最明顯的問題是你的引號(hào),它使變量成為 JavaScript 中的字符串,而不是具有數(shù)據(jù)結(jié)構(gòu)的復(fù)雜對(duì)象。因此,對(duì)變量中屬性等的任何引用都不起作用。應(yīng)刪除引號(hào),以便將數(shù)據(jù)作為對(duì)象文字呈現(xiàn)到發(fā)出的 JavaScript 中。
但是還有另一個(gè)重要的問題:如果這是在你所說的 .js 文件中完成的,那么 PHP 解釋器沒有在那里運(yùn)行,所以 echo 將不起作用(引號(hào)或不引號(hào)),因?yàn)樗皇怯蓤?zhí)行的PHP又變成了數(shù)據(jù)。您只會(huì)看到直接嵌入 JS 代碼中的 PHP 代碼。
您必須將數(shù)據(jù)回顯到 .php 文件中的腳本塊中,然后調(diào)用 .js 文件中的適當(dāng)函數(shù)并將數(shù)據(jù)作為參數(shù)傳遞。如果只需要一次數(shù)據(jù),這將很好地工作。
例如
文件
<?php
$data = array[];
$data = json_encode($raw_data);
?>
<script src="someJsFile.js"></script>
<script>
var data = <?php echo $data ?>; //inject the data into the JS as an object literal
someFunc(data); //pass the data to a function in someJsFile.js
</script>
文件:
function someFunc(data) {
//your code to process the data
}
如果您需要在頁面的生命周期內(nèi)保持更新,那么您將需要 AJAX 才能從服務(wù)器請(qǐng)求新數(shù)據(jù),如其他答案之一所建議的那樣。
- 4 回答
- 0 關(guān)注
- 195 瀏覽
添加回答
舉報(bào)