好的,所以我试图在第一次调用完成后启动ajax调用。我有一张有3个下拉菜单的表格。第一个菜单onload运行脚本以带回值。然后,我想将vale输入到第二个脚本中,并运行该脚本来填充第二个第三个菜单。
第二个下拉列表填充在第一个的Change上。这很管用。然后我想把这个结果输入到第三个下拉列表中。我知道我的外部查询是对的,我只是觉得ajax是错的。这是我的Ajax调用。。。。
<script type="text/javascript" charset="utf-8">
jQuery(document).ready(function() {
jQuery('#networks').trigger('change');
});
function get_cities(networks)
{
$.ajax({
type: "POST",
url: "select.php",
beforeSend: function () {
$("#folder").html("<option>Loading ...</option>");
},
data: "idnetworks="+networks +"&par="+ <?php echo $row_rs_doc['parentid']; ?>,
success: function(msg){
$("#folder").html(msg);
}
});
}
</script>
<script type="text/javascript" charset="utf-8">
jQuery(document).ready(function() {
jQuery('#folder').trigger('change');
});
function get_sub(folder)
{
$.ajax({
type: "POST",
url: "select2.php",
beforeSend: function () {
$("#subfolder").html("<option>Loading ...</option>");
},
data: "iddocs="+folder,
success: function(msg){
$("#subfolder").html(msg);
}
});
}
</script>
好的,这是的表单字段
<select name="networks" id="networks" onChange='get_cities($(this).val())'>
<?php create(network, networkid, netname);?>
</select>
<select name="folder" id="folder" onChange='get_sub($(this).val())'>
</select>
<select name="subfolder" id="subfolder">
</select>
KISS it。只需将第二个ajax调用放入第一个的success
中即可
您可以使用延迟对象,这将允许您启动额外的操作,而不必重写现有的事件处理程序,也不需要过多地嵌套代码:
var req1 = $.ajax(...);
req1.done(function() { ... } ); // start your second request