2012-11-28 122 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');' –