根据第一个选择框填充最后一个选择框


Populate the last selectbox based on the first

我试图根据第一个选择框填充一个选择框,但没有结果,没有错误,但第二个选择框没有填充:我的html:

               <div class="form-group">
                        <label>Firm:</label>
                        <select class="form-control marg-left-10" id="firm">
                            <?php if($all_firms): ?>
                                <?php foreach($all_firms as $firm): ?>
                                    <option value="<?php echo $firm['id_firm']; ?>"><?php echo $firm['name_firm']; ?></option>
                                <?php endforeach; ?>
                            <?php endif; ?>
                        </select>
              </div>
              <div class="form-group">
                        <label>Administrator</label>
                        <select class="form-control marg-left-10" id="admin">
                        </select>
              </div>

我的php:

public function getAllFirms()
{
    $this->load->database();
    $all_firms = $this->db->query("SELECT *FROM firms");
    if ($all_firms->num_rows())
    {
        $all_firms = $all_firms->result_array();
    }
    else
    {
        $all_firms = NULL;
    }
    return $all_firms;
}
 public function getAdministrator($id)
{
    $this->load->database();
    $get_admin = $this->db->query("SELECT * FROM users,firms WHERE firms.id_firm = users.fk_firm and users.id = $id");
    if ($get_admin->num_rows())
    {
        $get_admin = $get_admin->result_array();
    }
    else
    {
        $get_admin = NULL;
    }
    return $get_admin;
}

我的脚本:

    $("#firm").change(function() {
    var selectedMark = $("#firm").val();
    if (selectedMark != "") {
        $.ajax({
            type: "GET",
            url: "<?php echo base_url() . 'user/getAdministrator'; ?>" + selectedMark,
            success: function(data) {
                $("#admin").html("");
                $("#admin").append("<option value=''></option>");
                $.each(data, function() {
                    $("#admin").append("<option value='" + this.id + "'>" + this.name + "</option>");
                });
            }
        });
    }
});

我使用CodeIgniter作为后端语言,填充了第一个选择框,但没有填充第二个选择框。请帮帮我,伙计们……请帮助! !帮帮我,伙计们!解决这个问题的另一个办法是什么?

看起来你在调用'admin' select时忘记添加#了。例如,查看JS的"success"部分并更改:

$('admin')...

$('#admin')...
you are looking like this:   
<div class="form-group">
 <label>Firm:</label>
 <select class="form-control marg-left-10" id="firm">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
 </select>
</div>
<div class="form-group">
 <label>Administrator</label>
 <select class="form-control marg-left-10" id="admin"></select>
</div>
<script>
$("#firm").change(function() {
var selectedMark = $("#firm option:selected").val();
var selectedMarkt = $("#firm option:selected").text();
if (selectedMark != "") {
    $.ajax({
        type: "GET",
        url: "test.php",
        success: function(data) {
            $("#admin").append("<option value='" + selectedMark + "'>" + selectedMarkt + "</option>");
        }
    });
  }
});
</script>

看起来这行需要另一个"/":

url: "<?php echo base_url() . 'user/getAdministrator'; ?>" + selectedMark,

就在'user/getAdministrator'后面