如何使用php和ajax从数据库中填充2个选择框

时间:2014-08-20 11:27:22

标签: php jquery ajax codeigniter-2 php-5.3

我有一个问题,如何在url: <?php echo base_url() . 'user_m/getAdministrator'; ?>"参数中使用ajax传递参数, 因为我试图在另一个基础上填充选择框但我没有成功。

HTML:

<div class="form-group">
                        <label>Denumirea intreprinderii:</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 getAdministrator()
{
    $id_firm = $_POST['id_firm'];
    $this->load->database();
    $sql = $this->db->query("SELECT * FROM users,firms WHERE firms.id_firm = users.fk_firm and users.id = ");
    while($row=mysql_fetch_array($sql))
    {
        $id=$row['id'];
        $data=$row['name'];
        echo '<option value="'.$id.'">'.$data.'</option>';
    }
    return $this;
}

脚本:

    $(document).ready(function()
{
    $("#firm").change(function()
    {
        var id_firm=$(this).val();
        var dataString = 'id_firm='+ id_firm;
        $.ajax
        ({
            type: "POST",
            url: "<?php echo base_url() . 'user_m/getAdministrator'; ?>",
            data: dataString,
            cache: false,
            success: function(html)
            {
                $("#admin").html(html);
            }
        });

    });

});

请帮助我。第一个选择框已填充,但第二个选择框没有。请帮助我。是否存在将参数传递给user_m / getAdministrator方法的方法?请帮帮我!!!!!

1 个答案:

答案 0 :(得分:0)

PHP中的PHP不是一个好习惯,在调用脚本之前尝试在主php文件上写这个

<script>
var base_url = "<?=base_url()?>";
</script>

然后在你的js文件中:

$.ajax
({
        type: "POST",
        url: base_url+"user_m/getAdministrator",
        data: dataString,
        cache: false,
        success: function(html)
        {
            $("#admin").html(html);
        }
    });

另外,您可以这样发送数据:

data: { id_firm: id_firm },