[英]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.