找不到错误,必须在“comunas”数据库中查询。
以下是代码:
1)2个表:
comunas:
com Com Com Com Com Com Com Com Com Com Com Com Com
regiones: regId regNombre
2)控制器:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Usuarios extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->database();
$this->load->helper('form');
$this->load->helper('url');
$this->load->model("regiones_model");
$this->load->model("comunas_model");
}
public function index_get()
{
$data['regionDrop'] = $this->getRegiones();
//loads up the view with the query results
$this->load->view('panel/usuario_agrega_view',$data);
}
public function getRegiones()
{
$this->db->select('regId,regNombre');
$this->db->from('regiones');
$query = $this->db->get();
// the query mean select cat_id,category from category
foreach($query->result_array() as $row){
$data[$row['regId']]=$row['regNombre'];
}
// the fetching data from database is return
return $data;
}
public function getComunaByRegion($regId=string)
{
$this->db->select('comId,comNombre, comRegion');
$this->db->from('comuna');
$this->db->where('comRegion',$regId);
$query = $this->db->get();
return $query->result();
}
//call to fill the second dropdown with the comunas
public function buildDropComunas()
{
//set selected country id from POST
echo $regId = $this->input->post('id',TRUE);
//run the query for the comunas we specified earlier
$districtData['districtDrop']=$this->comunas_model->getComunaByRegion($regId);
$output = null;
foreach ($districtData['districtDrop'] as $row)
{
//here we build a dropdown item line for each query result
$output .= "<option value='".$row->comNombre."'>".$row->comNombre."</option>";
}
echo $output;
}
}
3)模型:我没有在模型中使用查询,我现在不能“触摸它们”,所以我将该代码直接放在控制器中。
4)查看:
<script type="text/javascript">
$(document).ready(function() {
$("#regionesDrp").change(function(){
/*dropdown post *///
$.ajax({
url:"<?php echo base_url();?>usuarios/buildDropComunas",
data: {id: $(this).val()},
type: "POST",
success:function(data){
$("#comunaDrp").html(data);
}
});
});
});
</script>
<!--country dropdown-->
<?php
echo form_dropdown('regionesDrp', $regionDrop,'','class="required" id="regionesDrp"'); ?>
我尝试按照以下示例进行操作:http://www.c-sharpcorner.com/uploadfile/225740/cascading-drop-down-in-codeigniter-using-ajax/
但我有一个不同的数据库(FK comId),正如我告诉你的那样,我不能使用模型文件。无论如何,我尝试使用region_model和comuna_model,但它是一样的。
答案 0 :(得分:0)
使用append()而不是html()
$("#comunaDrp").append(data);
答案 1 :(得分:0)
首先,函数getComunaByRegion应为:
public function getComunaByRegion($comRegion=string)
{
$this->db->select('comId,comNombre');
$this->db->from('comunas');
$this->db->where('comId',$comRegion);
$query = $this->db->get();
return $query->result();
}
另外,在控制器中,函数public function buildDropComunas_post()没有用POST调用,这是我找不到404的主要原因。