2012-07-19 103 views
0

确定即时尝试在第一个调用完成后启动ajax调用。我有一个3下拉菜单的形式。第一个菜单onload运行脚本以恢复值。然后我想将vale喂入第二个脚本并运行脚本来填充第二个第三个菜单。当第一个调用完成后,触发第二个ajax函数

第二个下拉列表在第一个下拉列表中填充。这很好。然后我想让这个Feed的结果进入第三个下拉菜单。我知道我的外部查询是正确的我只是觉得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> 

回答

1

KISS吧。只要把第二Ajax调用的第一个

0

您可以使用延迟的对象,这将允许用户启动额外的操作,而无需重写现有的事件处理程序的success内,没有嵌套代码太多:

var req1 = $.ajax(...); 

req1.done(function() { ... }); // start your second request 
+0

谢谢,但我不能让任何一个正确执行我编辑了顶部的帖子,包括表单域 – 2012-07-19 11:24:38

+0

@DanielRobinson请不要包含您的PHP - 包括HTML输出_after_它已经通过PHP。 – Alnitak 2012-07-19 12:04:29

+0

我的html输出是空白的,因为它是对单独文件的ajax调用。基本上虽然第一个和第二个清单工作很好。第三个列表甚至不尝试加载它只是完全空白。这个函数似乎根本就不运行 – 2012-07-19 13:35:17

相关问题