es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Pasando el ID al controlador usando Ajax – Error 404 en Laravel

Soy nuevo en Laravel.
Intentando pasar el ID desde la vista al controlador pero obteniendo un error.

POST http://127.0.0.1:8000/getbuffaloidformonitor 404 (No encontrado)

Este es mi Vista BuffaloMonitor:

$(document).on('click', '.viewmonitormodal', function() {
    var modal_data = $(this).data('info').split(',');
    $('#viewbuffaloID').val(modal_data[1]);
    var buffaloid = document.getElementById('viewbuffaloID').value // obtener el ID del búfalo del cuadro de texto para obtener los datos para ese ID
    alert(buffaloid);
    //alert(data);
    $(function() {
        $.ajax({
            method: "POST",
            url: "/getbuffaloidformonitor",
            data: {
                '_token': $('input[name=_token]').val(),
                'id': buffaloid,
            },
            success: function(response) {
                alert(response);
            }
        });
    });
})

Este es el controlador Buffalomonitor:

public function getbuffaloidformonitor(Request $req) {
    $data = buffalodata::find($req->id);
    alert(data);
    $id = $req('data');
    return $id;
}

Esta es la ruta:

Route::post('/getbuffaloidformonitor/{id}','App\Http\Controllers\BuffalomonitorController@getbuffaloidformonitor')->name('getbuffaloidformonitor');
Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error “POST http://127.0.0.1:8000/getbuffaloidformonitor 404 (No encontrado)” sugiere que no se ha establecido una ruta para manejar la solicitud POST a esa URL.

    Al analizar el código, parece que la ruta está configurada para aceptar un parámetro para el ID del buffalo, pero la llamada AJAX en la vista no está pasando ningún parámetro de URL. En cambio, envía el ID del buffalo como un parámetro POST llamado “id”.

    Para solucionar este problema, la ruta debe modificarse para eliminar el parámetro {id} y simplemente aceptar la solicitud POST a “/getbuffaloidformonitor”.

    Route::post('/getbuffaloidformonitor','App\Http\Controllers\BuffalomonitorController@getbuffaloidformonitor')->name('getbuffaloidformonitor');
    

    Luego, actualiza el controlador para recuperar directamente el ID del buffalo de los datos POST:

    public function getbuffaloidformonitor(Request $req) {
        $data = buffalodata::find($req->id);
        return $data;
    }
    

    Después de realizar estos cambios, la llamada AJAX en la vista debería poder enviar correctamente el ID del buffalo al controlador.

Comments are closed.