Pregunta

Le agradecería un poco de ayuda aquí:

Lo que quiero hacer:

eliminar y itemsPerPage = 10 a partir de:

http: //localhost/thi/search/filter.html ? type = ofrecido & page = 2 & itemsPerPage = 10

y crear un vínculo de ella:

http: //localhost/thi/search/filter.html ? type = ofrecido & page = 2 & itemsPerPage = 15

esto es lo que he encontrado hasta el momento:

<a href="<?php echo url::site(url::current()) . http_build_query($_GET) // don't know what follows ?>"

marco de las funciones que estoy usando son:

url :: current () = devuelve url actual en formato de controlador / acción

url :: sitio (=) devuelve URL absoluta es decir http: // localhost / site / controlador / acción

así que tengo que quitar 'y itemsPerPage' de la cadena resultante en la función http_build_query

pero estoy teniendo problemas con la codificación de caracteres y tal! por favor ayuda!

así que aquí está el problema con la codificación de caracteres:

$needle = '&itemsperpage';

        $querystring = http_build_query($_GET) . '<br/>';

        // echo $querystring . '<br/>';

        $pos = strpos($querystring, $needle);

        $remove = substr($querystring, ((int)$pos));

        echo substr(str_replace($remove, '', $querystring), 1); // returns ';'

No puedo quitar la cadena 'y itemsPerPage' a partir del resultado de http_build_query que es: 'Type = ofrecido & page = 2 & itemsPerPage = 10' y funciona como salidas strstr nada

¿Fue útil?

Solución

Me acaba de hacer esto:

$array = $_GET;
$array['itemsperpage'] = 15;

A continuación, sólo tiene que utilizar su código, pero con la nueva variable (y el ?):

<a href="<?php echo url::site(url::current()) . '?' . http_build_query($array)">

Otros consejos

El HttpQueryString clase tiene varios métodos para obtener, configurar, la modificación de las cadenas de consulta y 'traducir' sus conjuntos de caracteres.

Puede conseguir el efecto que busca la eliminación del elemento de la matriz itemsperpage $_GET antes de construir la cadena de consulta.

unset($_GET['itemsperpage']);

Y a continuación, sólo tiene que utilizar el código ya escrito:

<a href="<?php echo url::site(url::current()) . http_build_query($_GET); ?>">

EDIT: He leído mal su puesto. Pensé que sólo quería quitar el par de campo / valor a partir de la solicitud GET. Todo lo que tiene que hacer es sobrescribir el valor con el valor que desee:

$_GET['itemsperpage'] = 15;

Y a continuación, utilizar el código ya escrito.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top