2017-11-12 4 views
0

Laravelでオートコンプリート検索の値のIDのみを取得できますか?現在の状況は雇用者名の価値を得ているようですが、雇用者名のIDを取得したいので、雇用者名を保存せずにデータベースの別のテーブルに保存することができます。LaravelでオートコンプリートAJAXを使用する際の値のIDを取得する方法は?

{!! Form::open(['route' => 'calllogs.store', 'method' => 'post']) !!} 

    <div class="form-group"> 
    {!! Form::label('Company Recommend ') !!} 
    <input class="typeahead form-control" value="" type="text" name="searchajax" id="search_text"> 
    </div> 

    {!! Form::submit(__('Create'), ['class' => 'btn btn-primary pull-right']) !!} 
{!! Form::close() !!} 

<script> 
$(document).ready(function() { 
    src = "{{ route('searchajax') }}"; 
    $("#search_text").autocomplete({ 
     source: function(request, response) { 
      $.ajax({ 
       url: src, 
       dataType: "json", 
       data: { 
        term : request.term 
       }, 
       success: function(data) { 
        response(data); 

       } 
      }); 
     }, 
     minLength: 1, 

    }); 
}); 
</script> 

どれが認識されるであろうことができます:

public function index2(){ 
    return view('autocomplete.index'); 
} 

public function autoComplete2(Request $request) { 
    $query = $request->get('term',''); 

    $products=Employer::where('employer_name','LIKE','%'.$query.'%')->get(); 

    $data=array(); 
    foreach ($products as $product) { 
     $data[]=array('value'=>$product->employer_name,'id'=>$product->id); 
    } 
    if(count($data)) 
     return $data; 
    else 
     return ['value'=>'No Result Found','id'=>'']; 
} 

はここに私の見解である:

は、ここに私のコントローラのコードです。

+0

ここで雇用者のIDを設定できないのはなぜですか?$ data [] = array( 'value' => $ product-> employer_name、 'id' => $ product-> id); – camelsWriteInCamelCase

+0

nono、私はpostメソッドを使い、雇用者名を再度保存せずにIDだけを保存したい –

+0

jquery UIオートコンプリートを使用したいと思います。オートコンプリートリストを右クリックしたときに社員名の代わりに従業員IDが必要なのですか? –

答えて

0

これはlaravelとは関係がありませんが、Jquery UI.jqueryUIのオートコンプリートにはオプションコール 'select'があり、オートコンプリートリスト項目をクリックするとトリガーされます。

$(document).ready(function() { 
    src = "{{ route('searchajax') }}"; 
    $("#search_text").autocomplete({ 
     select: function (event, ui) {//trigger when you click on the autocomplete item 
      event.preventDefault();//you can prevent the default event 
      alert(ui.item.id);//employee id 
      alert(ui.item.value);//employee name 

     }, 
     source: function(request, response) { 
      $.ajax({ 
       url: src, 
       dataType: "json", 
       data: { 
        term : request.term 
       }, 
       success: function(data) { 
        response(data); 

       } 
      }); 
     }, 
     minLength: 1, 

    }); 
}); 
+0

ありがとう、私はそれを得る –

関連する問題