Tengo una selección desplegable con la lista con 12 meses futuros:
<select name="month" id="specificMonth"> @foreach(Carbon\CarbonPeriod::create(now()->startOfMonth(), '1 month', now()->addMonths(11)->startOfMonth()) as $date) <option value="{{ $date }}"> {{ $date->format('F Y') }} </option> @endforeach </select>Si la opción en el menú desplegable cambia, quiero realizar una acción de ruta como:
$('#specificMonth').change(function(){ var data = $(this).serialize(); alert(data); $.ajax({ type: "POST", URL: "{{ route('calendar.specificMonth', 'date') }}", data: data, success: function () { console.log("works"); } }); });Entonces necesito obtener el mes seleccionado en el Controlador y devolver la vista con un mes específico. ¿Como puedo hacer eso?
Cuando "alerta" datos, lo muestra correctamente.
La URL en mi caso debería verse así:
/calendar/{date}O algo así. Por ahora, mi ruta para eso se ve así:
Route::post( '/calendar/{date}', [CalendarController::class, 'specificMonth'] )->name('calendar.specificMonth');Pero realizar una acción a la vista me da un error "POST http://127.0.0.1:8000/calendar 405 (Method Not Allowed)".
¿Este debería ser el método POST o GET? ¿Cómo crear una URL personalizada en ese caso?
Actualizado, método del controlador en el que solo quiero volcar datos:
public function specificMonth(Request $request, $date) { dd($request); }No puede volcar datos mientras usa ajax. Puede usar Illuminate\Support\Facades\Log::debug($request) en el controlador. Luego, la solicitud se mostrará en storage/logs/logfielname.log.