1

オートコンプリートを使用するフォームがあり、入力フィールドのデータを取得できますが、説明データを取得する方法がわかりません。私がやりたいのは、ユーザーから値を取得してから、別のコントローラーを呼び出して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();

}
4

1 に答える 1

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)
            } 
        });
    }
});
于 2013-01-02T05:07:12.327 に答える