2012-12-26 126 views
0

得到一个笨功能的数据这是我到目前为止有:不能与阿贾克斯

此功能从模型返回的数据:

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

你能看到,如果执行Ajax请求?你可以使用萤火虫或铬的内置工具。你加载了输入库吗? – lam3r4370

+0

输入库是一个系统库,它始终被加载,这不是问题。使用Chrome浏览器,按f12,查看js控制台显示的错误(或者如果您已经安装了Firefox,请使用Firefox和Firebug) –

回答

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); 
    }