我有一个与carro
和marca
有关系的modelo
表,这两个表也有关系。我首先添加 marca ,然后在添加新的 modelo 时,我必须先选择 marca 。
现在,要添加新的 carro ,我必须选择一个 marca 和 modelo 。目前列出了所有已注册的 modelo ,但我需要列出与所选 marca 相关的内容。以下是字段的select
HTML。
<div class="row">
<input id="hdn_id_marca" type="hidden" name="hdn_id_marca" value="0"/>
<div class="form-group col-md-6">
<label for="id_marca">Marca do Carro</label>
<select id="id_marca" name="id_marca" class="form-control" required>
<option value="" selected disabled>Selecione</option>
<?php foreach ($marcas as $m) { ?>
<option value="<?php echo $m['id']; ?>">
<?php echo $m['nome_marca']; ?>
</option>
<?php } ?>
</select>
</div>
<div class="form-group col-md-6">
<label for="id_modelo">Modelo do Carro</label>
<select id="id_modelo" name="id_modelo" class="form-control" required>
<option value="" selected disabled>Selecione</option>
<?php foreach ($modelos as $m) { ?>
<option value="<?php echo $m['id']; ?>">
<?php echo $m['nome_modelo']; ?>
</option>
<?php } ?>
</select>
</div>
</div>
这些值是从数据库中检索的,它不是任何静态值。我试图创建一个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: {'hdn_id_marca': selectedId},
type: 'POST',
success: function() {
alert(data)
}
});
});
但我接着
POST XHR http://localhost:8000/admin/modelos/select_by_id_marca [HTTP / 1.1 500内部服务器错误53毫秒]
修改2
以下是我的select_by_id_marca()
方法。我还通过添加此方法可以访问的hidden
字段来更新以前的代码。经过一些更改后,我修复了发生500错误的原因,但现在,根据所选的 marca ,该字段不会仅使用 modelo 填充。
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('marca');
foreach ($query->result_array() as $row) {
$data[] = $row;
}
$query->free_result();
return $data;
}
答案 0 :(得分:0)
这是错误的
$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('marca');
您正在使用get_where()
和get()
。它应该是
$this->db->order_by($this->primary_key, 'DESC');
$query = $this->db->get_where('marca', array('id' => $this->input->post('hdn_id_marca')));
接下来,
变化
return $data;
到
echo json_encode($data);
在ajax的成功中,
success: function(data) {
var a = JSON.parse(data);
alert(a.id);
}