JavaScript部分:<select id="category" onchange="getProducts()">
<option value="1">電子產品</option>
<option value="2">家居用品</option>
<option value="3">服裝鞋帽</option>
</select>
在這個例子中,我們通過onchange事件監聽了下拉框的選擇改變。當用戶選擇了一個分類后,getProducts()函數就會被觸發。 在getProducts()函數中,我們首先獲取了當前選中的分類的值。然后創建一個XMLHttpRequest對象,并通過open()方法指定請求的URL,其中包含了選中的分類值作為參數。接著,我們設置了一個回調函數,該函數會在異步請求的狀態改變時被觸發。當請求完成且響應的狀態碼為200時,我們將服務器返回的數據解析為JSON對象,并根據返回的結果更新下拉框的選項。 在更新選項時,我們首先獲取了下拉框的DOM元素,然后清空了所有的選項。接著,使用一個循環為每個商品創建一個新的選項,并為其設置value和innerHTML屬性,最后將新選項添加到下拉框中。 通過這樣的方式,當用戶選擇了商品分類后,下拉框的選項會被動態更新為該分類下的商品列表。 上述是一個簡單的示例,實際應用中可能還需要處理更復雜的邏輯和數據。但無論是簡單還是復雜,使用Ajax傳值來實現下拉框的動態變化都是一種高效和靈活的方式。通過異步請求數據,我們能夠實時地根據用戶的選擇來更新下拉框中的選項,從而提升用戶體驗和交互效果。function getProducts() {
var categoryId = document.getElementById("category").value;
var xhr = new XMLHttpRequest();
xhr.open("GET", "get_products.php?category=" + categoryId, true);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
var products = JSON.parse(xhr.responseText);
var select = document.getElementById("category");
select.options.length = 0;
for (var i = 0; i < products.length; i++) {
var option = document.createElement("option");
option.value = products[i].id;
option.innerHTML = products[i].name;
select.appendChild(option);
}
}
xhr.send();
}