第一个完成时触发第二个ajax函数

时间:2012-07-19 10:49:48

标签: php ajax jquery

好的,所以我试图在第一次通话结束后开始ajax通话。我有一个带有3个下拉菜单的表单。第一个菜单onload运行脚本以返回值。然后我想将vale提供给第二个脚本并运行脚本来填充第二个第3个菜单。

第二个下拉列表将填充第一个下拉列表。这非常有效。然后,我希望该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>

2 个答案:

答案 0 :(得分:1)

吻它。只需将第二个ajax调用放在第一个<{p>}的success

答案 1 :(得分:0)

您可以使用延迟对象,这将允许您启动其他操作,而无需重写现有的事件处理程序,也不会过多地嵌套代码:

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

req1.done(function() { ... } );  // start your second request
相关问题