2012-07-19 72 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

相關問題