簡體   English   中英

Laravel 自動完成搜索與 sql 存儲過程不起作用

[英]Laravel autocomplete search with sql stored procedure not working

我有一個帶有 id_registrasi 的搜索字段,其中包含一些值。 我不知道這是否有問題,但我使用 sql 存儲過程和 laravel 查詢構建器來調用數據庫中的表。 我正在嘗試退回它並且它工作正常,但當我使用視圖刀片時卻不行。 到目前為止,這是我的代碼:

路線

Route::get('/rj/cari/index', [RJController::class, 'indexCari']);
Route::post('/rj/cari', [RJController::class, 'cari'])->name('cari');

Controller

    public function indexCari()
{
    return view('rjs.rj-input');
}

public function cari(Request $request)
{
    $search = $request->search;

    if ($search == '') {
        $results = DB::select("EXEC sp_kasir_daftar_harian_pasien_detail 
        @tgl='2021-11-21',
        @id_jenis_transaksi=1,
        @kd_cara_bayar=1
        ");
    }

    $response = array();
    foreach ($results as $r) {
        $response[] = array(
            "label" => $r->id_registrasi, "value" => $r->id_pasien, "value1" => $r->nm_pasien, "value2" => $r->alamat,
            "value3" => $r->nm_cara_bayar, "value4" => $r->nm_jaminan, "value5" => $r->total_biaya,
            "value6" => $r->nm_status_bayar
        );
    }

查看刀片:

   <script type="text/javascript">

var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');

$(文檔).ready(函數(){

 $( "#id_registrasi" ).autocomplete({
    source: function( request, response ) {
       // Fetch data
       $.ajax({
         url:"{{route('cari')}}",
         type: 'post',
         dataType: "json",
         data: {
            _token: CSRF_TOKEN,
            search: request.term
         },
         success: function( data ) {
            response( data );
         }
       });
    },
    select: function (event, ui) {
      // Set selection
      $('#id_registrasi').val(ui.item.label); // display the selected text
      $('#id_pasien').val(ui.item.value); 
      $('#nm_pasien').val(ui.item.value1);
      $('#alamat').val(ui.item.value2);
      $('#nm_cara_bayar').val(ui.item.value3);
      $('#nm_jaminan').val(ui.item.value4);
      $('#total_biaya').val(ui.item.value5);
      $('#nm_status_bayar').val(ui.item.value6);
      return false;
    }
 });
});

返回 $response; 它工作正常。 我得到結果。 但是當返回 response()->json($response); 當我嘗試填寫搜索輸入表單時,我得到jquery.min.js:2 POST http://127.0.0.1:8000/rj/cari 500(內部服務器錯誤) 請幫忙?

您是否嘗試在 ajax 語法和 console.log 中發現錯誤?

    public function cari(Request $request)
{

    $search = $request->search;

    if ($search == '') {
        $results = DB::raw("SET NOCOUNT ON;EXEC sp_kasir_daftar_harian_pasien_detail 
        @tgl='2021-11-21',
        @id_jenis_transaksi=1,
        @kd_cara_bayar=1
        ");
    }

    $response = array();
    foreach ($results as $r) {
        $response[] = array(
            "label" => $r->id_registrasi, "value" => $r->id_pasien, "value1" => $r->nm_pasien, "value2" => $r->alamat,
            "value3" => $r->nm_cara_bayar, "value4" => $r->nm_jaminan, "value5" => $r->total_biaya,
            "value6" => $r->nm_status_bayar
        );
    }

    return response('success', 200);

@Atoli Gaming 添加了 return response('success', 200) 並且它仍然無法正常工作,無論是 response(json_encode($response),200)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM