$request->input 在 Laravel 中返回 Null

$request->input Returning Null in Laravel

我想尝试一下,如果我 select “下拉列表”中的一个值,它会自动替换同一页面中的另一个值,而无需更新页面,并使用 ajax,但是控制器部分我收到消息“request = null”我不明白,即使我已经输入了从“视图”到控制器的输入名称。 这是我的一些项目代码

view.blade

<label class="col-sm-2 form-inline">Karyawan</label>
<select class="form-select select-name" id="idSelect" aria-label="Default select example" name="pilih-nama">
  <option value="">-Pilih Karyawan-</option>
   @foreach ($karyawan as $data)
      <option value=" {{$data->nip_kyn}}">{{$data->nama_kyn}}</option>
   @endforeach
</select>

Controller

public function showData(Request $request)
{
    $nip = $request->input('pilih-nama');
    $data = Karyawan::where('nip_kyn', $nip)->first();
    return response()->json(['data' => $data]);
}

Ajax code in main view

    <script>
    $(document).on('change', '.select-name', function() {
        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });
        var hasil = $(this).val();
        // 
        if (hasil == '') {
            document.location.href = "unduhQR";
        }
        $.ajax({
            url: "{{route('showData.index')}}",
            type: 'post',
            data: {
                data: hasil
            },
            success: function(res) {
                console.log(res.data)
                // $('.nama-kar').html(res.data.nama_kyn)
                // $('.idQr').html('NIP : ' + res.data.nip_kyn)
            },
            error: function(xhr) {
                // console.log(xhr)
            }
        })
    })
</script>

my route

Route::post('/showQR', [QRCodeController::class, 'showData'])->name('showData.index');

但是如果我像这样改变我的控制器

    $nip = 'NIP001'; // <-- Value from database
    $data = Karyawan::where('nip_kyn', $nip)->first();
    return response()->json(['data' => $data]);

它正在运行,但这不是动态的, 有什么解决这个问题的建议吗?

您需要这样发送数据

data: {pilih-nama: hasil}

老实说,你的变量名不好。换个好的吧。