【问题标题】:Populate the last selectbox based on the first根据第一个填充最后一个选择框
【发布时间】:2014-08-20 07:50:49
【问题描述】:

我尝试根据第一个但没有结果填充选择框,没有错误但没有填充第二个选择框: 我的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 作为后端语言,第一个选择框已填充,但第二个未填充。请帮帮我......请帮助!!!!!帮帮我!解决这个问题的其他想法?

【问题讨论】:

  • 你的 GET URL 看起来很狡猾
  • 我不明白这个想法

标签: php jquery ajax codeigniter codeigniter-2


【解决方案1】:

您似乎忘记在调用“管理员”选择时添加 #。 IE。请参阅 JS 的“成功”部分并进行更改:

$('admin')...

$('#admin')...

【讨论】:

  • 你也打过我吧! :(
  • 另请注意,您的selectedMark 变量并未针对#firm
  • 我改变了但没有结果
【解决方案2】:
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:" + selectedMark,
  • 它返回文件夹。你能说,值要传到哪个页面吗?
  • 公共函数 getAdministrator($id)+ selectedMark
  • 你能试试这个吗:var dataString = 'selectedMark='+ selectedMark; $.ajax({ type: "GET", url: , data: dataString,
  • 网址保持原样 url:", GET/POST 值传入dataString
【解决方案3】:

看起来你需要在这一行添加另一个“/”:

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

就在“用户/getAdministrator”之后。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多