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();
}