根据另一个选择框填充选择框

时间:2015-12-07 15:36:42

标签: php jquery codeigniter

我正在使用带有CodeIgniter 3的HMVC,我需要根据其他select在某个select中列出一些数据。

到目前为止,我在Modelos控制器中使用了此方法,该方法旨在用于填充第二个select

public function select_by_id_marca()
{
    $data = array();

    $this->db->order_by($this->primary_key, 'DESC');
    $this->db->get_where('marca', array('id' => $this->input->post('hdn_id_marca')));
    $query = $this->db->get($this->table);

    foreach ($query->result_array() as $row) {
        $data[] = $row;
    }

    $query->free_result();

    return $data;
}

这是Ajax:

$('#id_marca').change(function() {
    var selectedId = $(this).find('option:selected').val();
    $('#hdn_id_marca').attr('value', selectedId);

    $.ajax({
        url: '/admin/modelos/select_by_id_marca',
        data: selectedId,
        type: 'POST',
        success: function() {

        }
    });
});

在更改第一个500 Internal Server Error时,我实际上也面临#id_marca,但我还需要一个解决方案来完成这项工作。谢谢。

1 个答案:

答案 0 :(得分:0)

您通过ajax调用传递了一个简单的值:

    data: selectedId,
                ^---value only, no key

然后尝试访问PHP代码中不存在的密钥:

$this->db->get_where('marca', array('id' => $this->input->post('hdn_id_marca')));
                                                                 ^^^^^^

也许你想要

 data: {"hdn_id_marca":selectedId}

代替。