2013-01-02 62 views
1

我有一个使用自动完成的表单,我可以检索输入字段上的数据,但我无法弄清楚如何获取描述数据。我想要做的是从用户那里获得价值,然后调用另一个控制器来使用ajax获取附加信息(这样我可以在需要时获得更多信息)。由于在codeigniter中链接ajax请求

查看

<script type="text/javascript"> 
$(document).ready(function() { 
$(function() { 
    $("#autocomplete").autocomplete({ 
     source: function(request, response) { 
      $.ajax({ url: "<?php echo site_url('test/suggestions'); ?>", 
      data: { term: $("#autocomplete").val()}, 
      dataType: "json", 
      type: "POST", 
      success: function(data){ 
       response(data); 
      } 
     }); 
    }, 
    minLength: 2 

    }); 
}); 
}); 
</script> 

<label for="title">Job Title</label> 
<input name="title" type="text" id="autocomplete" /> 

<label for="description">Description</label> 
<p id="description" /></p> 

控制器

function suggestions() 
{ 
    $this->load->model('tp_model'); 
    $term = $this->input->post('term',TRUE); 

    if (strlen($term) < 1) break; 

    $rows = $this->tp_model->GetAutocomplete(array('keyword' => $term)); 

    $title_array = array(); 
    $description_array = array(); 


    foreach ($rows as $row){ 
     array_push($title_array, $row->title); 
     array_push($description_array, $row->description); 

} 
    echo json_encode($title_array);  

} 

型号

function GetAutocomplete($options = array()) 
{ 

    $this->db->select('*'); 
    $this->db->from('test'); 
    $this->db->like('title', $options['keyword'], 'after'); 
    $query = $this->db->get(); 
    return $query->result(); 

} 

回答

0

您可以使用 “select” 事件自动完成取从控制器的说明。

$("input#autocomplete").autocomplete({ 
    source: ..., 
    ....., 
    select: function(event, ui) { 
     var id = ui.item.id; 
     $.ajax({ 
      url: description_fetch_url, //another controller 
      data: "descritpion_id="+id, 
      .... 
      success: function(data) { 
       $("#description").html(data) 
      } 
     }); 
    } 
}); 
+0

autocomplete是一种jQuery UI方法。你必须加载jQuery UI才能使用它。 –

+0

@ user1190992我喜欢你添加的内容,但我不确定如何在当前项目中实现它。这是一个独立的脚本还是添加到当前脚本中。如果是的话,它添加在哪里。我还是新来的阿贾克斯,所以任何帮助,将不胜感激。 – sfjamrock

+0

@KevinBeal JQuery UI被加载并且自动完成工作正常,我需要的是一种获取自动完成值并执行另一个Ajax函数的方法。 – sfjamrock