2013-03-13 122 views
0

我創建了一個腳本,用第一個組合框的值填充第二個組合框。但這並不完全是我想要做的。我想用基於在第一個組合框中選擇的項目的SQL查詢的結果來填充第二個組合框。php&js動態創建自動填充的下拉列表

這裏是我的javascript:

<script type="text/javascript"> 
    function selectDropdown(){ 
     var dropdownValue=document.getElementById("dropdown").value; 
     $('option[value=st]').text(dropdownValue); 
    } 
</script> 

第一組合框:

<select id="dropdown" name="dropdown" onchange="selectDropdown()"> 
    <option value="dd">--take an option--</option> 
    <? 
    $standard = Env::value('standard'); 
    if (!$status) 
     $statement = "select code from standard"; 
    foreach ($db->query($statement)->fetchall() as $row) 
     echo "<option".($row == $standard ? ' selected ' : '').">$row[0]</option>"; 
    ?> 
</select> 

,並在其中我想顯示查詢結果的第二個:$q= select request.code from request inner join standard on (request.standard_id=standard.id) where standard.code=$st

<select name='st' class='txt'> 
    <option value="st"><? echo $st; ?></option> 
</select> 

任何人都可以給我一個提示,我應該把查詢執行?或者只是指出我在做什麼錯了?

+0

爲什麼使用純JS來獲得下拉的值,然後使用jQuery來獲取選項的文本值? – kidonchu 2013-03-13 11:58:51

+0

缺乏經驗和知識:(你能否提供關於我應該學習的東西的正確文章或教程? – Mithrand1r 2013-03-13 12:00:40

+0

如果你想運行一個查詢,那麼你必須使用需要ajax調用的服務器端代碼。相似。http://remysharp.com/2007/01/20/auto-populating-select-boxes-using-jquery-ajax/ – karmafunk 2013-03-13 12:01:53

回答

0

使用jQuery的ajax調用在每次第一次下拉選擇被更改時向服務器發出請求。在服務器端創建一個腳本,它將接收該請求並返回JSON格式的第二個下拉列表的相應記錄,然後可以通過javascript輕鬆處理。對於使用AJAX看到此鏈接:http://api.jquery.com/jQuery.ajax/

它會像:

jQuery.ajax({ 
    method: "POST", 
    url: "http://domain.com/path/to/script.php", 
    data: value_of_selected_item_from_first_dropdown, 
    success: function(response) { 
     // Set 2nd dropdown values to those received via response 
    } 
    dataType: "json", 
});