84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
我在PHP中有一個變量,我需要在我的JavaScript程式碼中使用它的值。我怎麼能從PHP將我的變數傳遞到JavaScript?
我有以下程式碼:
getValue(); // 進行API和資料庫調用
在同一個頁面上,我有需要將$val變數的值作為參數傳遞的JavaScript程式碼:
$val
我通常在HTML中使用data-*屬性。
這個範例使用了jQuery,但它可以適應其他函式庫或原生JavaScript。
您可以在這裡閱讀有關dataset屬性的更多資訊:https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.dataset
實際上有幾種方法可以做到這一點。有些方法需要更多的開銷,有些方法被認為比其他方法更好。
沒有特定的順序:
在本文中,我們將詳細介紹上述每種方法的優缺點,以及如何實作它們。
這種方法被認為是最好的,因為伺服器端和客戶端腳本完全分離。
使用AJAX,你需要兩個頁面,一個是PHP產生輸出的頁面,另一個是JavaScript取得該輸出的頁面:
/* 在这里执行一些操作,比如与数据库、文件会话等进行交互 * 超越世界,无间地带,闪烁之城和加拿大。 * * AJAX通常使用字符串,但你也可以输出JSON、HTML和XML。 * 这完全取决于你发送的AJAX请求的Content-type头。 */ echo json_encode(42); // 最后,你需要`echo`结果。 // 所有数据都应该使用`json_encode`。 // 你可以在PHP中`json_encode`任何值,数组、字符串, // 甚至对象。
上述兩個檔案的組合將在檔案載入完成時彈出42。
42
這種方法不如AJAX可取,但它仍有其優點。在某種程度上,它在PHP和JavaScript之間仍然是由相對分離的,因為JavaScript中沒有直接使用PHP。
inputNode.value
data-*
在這種情況下,你需要建立某種元素,該元素對使用者不可見,但對JavaScript可見。
這可能是最容易理解的方法。
我通常在HTML中使用data-*屬性。
這個範例使用了jQuery,但它可以適應其他函式庫或原生JavaScript。
您可以在這裡閱讀有關dataset屬性的更多資訊:https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.dataset
實際上有幾種方法可以做到這一點。有些方法需要更多的開銷,有些方法被認為比其他方法更好。
沒有特定的順序:
在本文中,我們將詳細介紹上述每種方法的優缺點,以及如何實作它們。
1. 使用AJAX從伺服器取得所需的資料
這種方法被認為是最好的,因為伺服器端和客戶端腳本完全分離。
優點
缺點
實作範例
使用AJAX,你需要兩個頁面,一個是PHP產生輸出的頁面,另一個是JavaScript取得該輸出的頁面:
get-data.php
index.php(或實際頁面的名稱)
上述兩個檔案的組合將在檔案載入完成時彈出
42
。更多閱讀材料
#2. 將資料回顯到頁面的某個位置,並使用JavaScript從DOM取得資訊
這種方法不如AJAX可取,但它仍有其優點。在某種程度上,它在PHP和JavaScript之間仍然是由相對分離的,因為JavaScript中沒有直接使用PHP。
優點
缺點
來儲存訊息,因為從
inputNode.value
中獲取資訊更容易,但這樣做意味著你的HTML中有一個無意義的元素。 HTML有元素用於文件的數據,HTML 5引入了
data-*
屬性,用於特定元素的與JavaScript相關的數據。實作範例
在這種情況下,你需要建立某種元素,該元素對使用者不可見,但對JavaScript可見。
index.php
3. 直接將資料回顯到JavaScript中
這可能是最容易理解的方法。
優點