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.

Laravel: ¿Cómo cambiar la URL de paginación después de una llamada ajax?

Tengo una llamada ajax en mi vista (para filtrar resultados) que llama a la función de acción del controlador de vehículos. Sin embargo, en la respuesta, la paginación crea la llamada a la siguiente página así:

localhost\vehicles\action?page=x

en lugar de esto:

localhost\vehicles\index?page=x

Creo la paginación de esta manera:

$data = Vehicle::whereHas('establishment')
                ->Where('transmission', 'like', '%' . $transmission . '%')
                ->where('classification', 'like', '%'.$classification.'%')
                ->whereBetween('daily_price',[$minPrice,$maxPrice])
                ->orderBy('id', 'asc')
                ->paginate(5);

Creo HTML de respuesta en el controlador y lo devuelvo con una respuesta JSON de la siguiente forma:

$datas = array(
            'table_data'  => $output,
            'total_data'  => $total_row,
            'pagination' => (string) $data->onEachSide(5)->links()
        );
echo json_encode($datas);

En el lado del origen tengo esto para el método exitoso:

success: function (data) {
                $('#car_list').html(data.table_data);
                $('#pagination').html(data['pagination']);
               //$('#total_records').text(data.total_data);
            }

E inserto la paginación en esto:

<pagination></pagination>

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para solucionar el problema con el enlace de paginación, es necesario especificar la URL para los enlaces de paginación en el método paginate(). Puede hacer esto pasando la URL al método paginate() como parámetro.

    En su caso, puede modificar la línea donde crea los enlaces de paginación de la siguiente manera:

    ->paginate(5, ['*'], 'page', null, ['path' => url('vehicles/index')])
    

    Esto establecerá la URL correcta para cada enlace de paginación, apuntando a localhost/vehicles/index?page=x.

    Una vez que haya realizado este cambio, los enlaces de paginación deberían funcionar correctamente y podrá navegar por las páginas sin ningún problema.

Comments are closed.