Jquery 通过AJAX更新选择框
当我试图通过AJAX更新整个选择框时,只在第一次起作用。在php端,始终发送相同的信息,选项字段一次被禁用,另一次被选中 更换整个选择框时是否有问题 下面是JS代码Jquery 通过AJAX更新选择框,jquery,Jquery,当我试图通过AJAX更新整个选择框时,只在第一次起作用。在php端,始终发送相同的信息,选项字段一次被禁用,另一次被选中 更换整个选择框时是否有问题 下面是JS代码 $(document).ready(function(){ $("select").change(function () { tid=location.href.replace(/^.*\/|\.[^.]*$/g, ''); colores=$("#colores option:sel
$(document).ready(function(){
$("select").change(function () {
tid=location.href.replace(/^.*\/|\.[^.]*$/g, '');
colores=$("#colores option:selected").val();
tallas=$("#tallas option:selected").val();
marcas=$("#marcas option:selected").val();
genero=$("#genero option:selected").val();
$.get("/ajax/getdata/" + tid + ";" + colores + ";" + tallas + ";" + marcas + ";" + genero, function(data){
// Asignamos las nuevas opciones para el combo2
$(".content").html(data);
});
})
});
为什么使用“;”作为值的分隔符?
您应该使用:
并在PHP页面中使用$\u GET[]:
<?php
$colores = $_GET['colores'];
$tallas = $_GET['tallas'];
$marcas = $_GET['marcas'];
$genero = $_GET['genero'];
// Do what you need to do with this
?>
但是,如果您的PHP总是返回相同的值,并且不应该返回相同的值,那么您的浏览器可能存在缓存问题:因为您对相同的url进行了请求,所以您的浏览器只需执行一次调用,然后为下一次调用保留以前返回的数据(以减少带宽使用)。
为了避免这个问题,您可以添加一个总是变化的参数(比如时间戳)
告诉我这个答案是否适合您,或者我会根据您的指示进行调整。美元(“.content”).html(数据)返回整个选择,而不是选项。因此,我认为这不是浏览器缓存问题,我认为当新的select到达时,jquery不会刷新,因此它不会进行第二次调用以检索新内容。您是否可以发布PHP代码(并最终删除不必要的内容),以查看您的PHP究竟需要做什么?这是一个drupal模块,最重要的功能是它的营养素。我已经解决了。将我的jquery更新为1.3.1,并使用live函数绑定更改事件。
<?php
$colores = $_GET['colores'];
$tallas = $_GET['tallas'];
$marcas = $_GET['marcas'];
$genero = $_GET['genero'];
// Do what you need to do with this
?>