2012-11-28 351 views
-1

我目前有一個自動填充選擇框,具體取決於您在第一個選擇框中選擇的選項。這一切工作正常,並完成這項工作。使用javascript填充選擇框

我想實現的是當表單被提交時它保留了所選的值。我可以得到這個工作的第一個初始選擇框,但是當涉及到第二個選擇框(自動加載)我似乎無法得到它的工作。

第一個選擇框ID是ctlJob,帶有靜態信息,第二個ID是ctlPerson。

這裏是我的HTML:

<form id="homesearch" action="view.php" method="get"> 
    <label for="ctlJob"></label> 
    <select name="id" id="ctlJob" style="clear:both; float:left;"> 

<option value="0">Please Select...</option>  


<option <?php if ($_GET['id'] == '1') { ?>selected="true" <?php }; ?>value="1">Regional General Manager</option> 
<option <?php if ($_GET['id'] == '2') { ?>selected="true" <?php }; ?>value="2">General Manager</option> 
<option <?php if ($_GET['id'] == '3') { ?>selected="true" <?php }; ?>value="3">Deputy General Manager</option> 
<option <?php if ($_GET['id'] == '4') { ?>selected="true" <?php }; ?>value="4">Operations Manager</option> 
<option <?php if ($_GET['id'] == '5') { ?>selected="true" <?php }; ?>value="5">Shift Manager</option> 
<option <?php if ($_GET['id'] == '6') { ?>selected="true" <?php }; ?>value="6">First Line Manager</option> 
<option <?php if ($_GET['id'] == '7') { ?>selected="true" <?php }; ?>value="7">Stock Controller</option> 


    <noscript> 
    <input type="submit" name="action" value="Load Individuals" /> 
    </noscript> 

    <select name="person_id" id="ctlPerson" style="clear:both; float:left;"> 

    </select> 
<input id="submit" type="submit" name="action" value="search" style="margin-top:40px;" /> 
</form> 

這裏是我的JS:

<script type="text/javascript"> 
    document.getElementById('id').value = "<?php echo $_GET['id'];?>"; 
    document.getElementById('person_id').value = "<?php echo $_GET['person_id'];?>"; 
</script> 

如何,我可以得到secondry選擇框的任何想法,以保持人口與選擇的形式有後的選項已提交給自己?

感謝,丹

對不起,我錯過了這個js了:

<script type="text/javascript" charset="utf-8"> 
$(function(){ 
$("select#ctlJob").change(function(){ 
    $.getJSON("view.php",{id: $(this).val(), ajax: 'true'}, function(data){ 
     var $persons = $("#ctlPerson").empty(); 
     $.each(data, function() { 
     $persons.append("<option value=" + this.optionValue + ">" + this.optionDisplay + "</option>"); 
     }); 
    }) 
    }); 
}) 
</script> 

回答

0

任何代碼,你用它來填充它(想必change事件處理程序),只是把它在頁面加載。我做的東西一樣,有這種代碼:

(elem.onsomething = function() { 
    // some event-handling code 
}).call(elem); 
+0

抱歉,我剛剛張貼填充選擇框 – danyo

+0

好,分配的功能給一個變量的JS,然後調用'$(「選擇#ctlJob」)。變化(MYFUNC); myfunc.call(的document.getElementById( 'ctlJob');' –