4 回答

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

TA貢獻1846條經驗 獲得超7個贊
您正在使用引號將字符串聲明為可變數據。
請刪除引號,這將符合您的期望。
因此,您的代碼應替換為以下幾行。
var data =<?php echo $data ?>;

TA貢獻1789條經驗 獲得超10個贊
var data = <?php echo $data ?>;
或者
var data = JSON.parse("<?php echo $data ?>");

TA貢獻1836條經驗 獲得超13個贊
最明顯的問題是你的引號,它使變量成為 JavaScript 中的字符串,而不是具有數據結構的復雜對象。因此,對變量中屬性等的任何引用都不起作用。應刪除引號,以便將數據作為對象文字呈現到發出的 JavaScript 中。
但是還有另一個重要的問題:如果這是在你所說的 .js 文件中完成的,那么 PHP 解釋器沒有在那里運行,所以 echo 將不起作用(引號或不引號),因為它不是由執行的PHP又變成了數據。您只會看到直接嵌入 JS 代碼中的 PHP 代碼。
您必須將數據回顯到 .php 文件中的腳本塊中,然后調用 .js 文件中的適當函數并將數據作為參數傳遞。如果只需要一次數據,這將很好地工作。
例如
文件
<?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
}
如果您需要在頁面的生命周期內保持更新,那么您將需要 AJAX 才能從服務器請求新數據,如其他答案之一所建議的那樣。
- 4 回答
- 0 關注
- 181 瀏覽
添加回答
舉報