-1

現在、最初の選択ボックスで選択したオプションに応じて、自動入力選択ボックスがあります。これはすべて正常に機能しており、仕事をしています。

私が達成しようとしているのは、フォームが送信されたときに、選択した値を保持することです。最初の最初の選択ボックスでこれを機能させることができますが、2番目の選択ボックス(自動的にロードされるもの)になると、機能するようには見えません。

最初の選択ボックス ID は静的情報を持つ ctlJob で、2 番目の選択ボックス 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>

フォームがそれ自体に送信された後、選択されたオプションが2番目の選択ボックスに入力されたままになるようにする方法についてのアイデアはありますか?

ありがとう、ダン

申し訳ありませんが、私はこの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>
4

1 に答える 1

0

設定に使用するコード(おそらくchangeイベントハンドラー)が何であれ、ページの読み込み時に呼び出すだけです。私はこの種のコードでそのようなことをします:

(elem.onsomething = function() {
    // some event-handling code
}).call(elem);
于 2012-11-28T16:19:38.610 に答える