使用javascript填充选择框

时间:2012-11-28 16:18:07

标签: php 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>

关于如何在表单提交给自己之后,如何使用选择的选项保留第二个选择框的任何想法?

谢谢,Dan

抱歉,我错过了这个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>

1 个答案:

答案 0 :(得分:0)

无论您使用哪种代码填充它(可能是change事件处理程序),只需在页面加载时调用它。我用这种代码做了类似的事情:

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