这是我到目前为止所得到的:
此函数从模型中返回数据:
function get_user2()
{
$this->load->model('my_model');
$id=$this->input->post('users1');
$users2=$this->my_model->get_relations($id);
return $users2;
}
模型功能:
function get_relations($usr)
{
$this->db->where('id',$usr);
$rel=$this->db->get('relacion');
if($rel->num_rows!=0)
{
$relacion=array();
foreach ($rel->result_array() as $row)
{
$relacion[]=array(
'id'=>$row['id'],
'username1'=>$row['username1'],
'username2'=>$row['username2'],
);
}
return $relacion;
}else{
return false;
}
}
在我看来:
<select name="users1" id="drop1">
<?php
if($opciones!=false){
foreach ($opciones as $row) {
echo '<option value="'.$row['user_id'].'">'.$row['username'].'</option>';
}
}
?>
</select>
<script src="jquery.js"></script>
<script type="text/javascript">
$("#drop1").change(function(){
$.ajax({
type: "POST",
url: "example.com/CI/index.php/evaluation/get_user2",
data: "users1="+$('#drop1').val(),
success: function(){
alert('it works!');
}
});
});
</script>
我想用控制器函数返回的选项填充第二个下拉列表,但是ajax请求没有做任何事情,所以我甚至没有达到那个部分。有人能帮我发现什么是错的吗?我已经测试了控制器和模型的功能,但它们都有效。你能告诉我如何填写第二个下拉选项吗? 非常感谢你!
答案 0 :(得分:0)
我在一个项目中有一个非常相似的代码,根据用户选择的岛屿来获取一些城市。因此,如果选择更改,请加载城市并启用第二个选择。主要区别在于传递数据的方式。
<script type="text/javascript">
$("#idisla").change(function(){
if($("#idisla").val()!=""){
var dato=$("#idisla").val();
$.ajax({
type:"POST",
dataType:"html",
url:base_url+"admin/centros/municipios_select",
data:"idislajs="+dato,
success:function(msg){
$("#idmunicipio").empty().removeAttr("disabled").append(msg);
callback();
}
});
}else{
$("#idmunicipio").empty().attr("disabled","disabled");
}
});
</script>
该功能仅查看所选islad(id)
中的城市 function municipios_select()
{
//el idIsla viene dado por el value del combo islas
$isla = $this->input->post('idislajs');
$data['municipios'] = $this->municipios_model->obtenMunicipios($isla);
echo $this->load->view("site/municipios_select",$data, TRUE);
}