recibir por pasar parametros paginas formulario enviar entre php html hyperlink

por - Cómo obtener y cambiar la variable URL PHP



pasar variables por url php post (6)

Hola, ¿alguien podría ayudarme con esto? Tengo una URL como

parent/child/a=1&b=2$c=3

entonces tengo un enlace que agregaría variable a esa URL

<a href="<?php echo $_SERVER["REQUEST_URI"]."&d=test1";?>">LINK 1</a> <a href="<?php echo $_SERVER["REQUEST_URI"]."&d=test2";?>">LINK 2</a>

cada vez que hago clic en mi enlace la variable d a URL sigue reproduciéndose así

parent/child/a=1&b=2&c=3&d=test2&d=test2&d=test2&d=test1&d=test1

Sé que $ _SERVER ["REQUEST_URI"] sigue obteniendo la URL actual y es por eso que obtengo ese resultado. He probado algunas de las propiedades de $ _SERVER [""]. Lo que me gusta es cambiar el valor de la variable d, cualquier idea de cómo hacerlo. Cualquier respuesta es muy apreciada. ¡Gracias!


Aquí no ha tenido en cuenta la doble cita. Reemplace eso con el siguiente código y luego verifique.

<a href="<?php echo ''http://''.$_SERVER[''SERVER_NAME''].$_SERVER[''REQUEST_URI''].''&d=test1'';?>">LINK 1</a>

Y también compruebe en firebug que la URL está en href cada vez.


Para eliminar la adición repetida del parámetro de consulta, haga lo siguiente

// parse the url $pathInfo = parse_url($_SERVER[''REQUEST_URI'']); $queryString = $pathInfo[''query'']; // convert the query parameters to an array $queryArray = parse_str($queryString); // add the new query parameter into the array $queryArray[''d''] = 1; // build the new query string $newQueryStr = http_build_query($data); // construct new url ?> <a href="<?php echo $pathInfo.''?''.$newQueryStr;?>">LINK 1</a>


Pruebe con la siguiente expresión, debería funcionar

preg_replace("#&d=.*&#", ''&d=newvalue&'', $_SERVER[''REQUEST_URI''])


$query = $_GET; // replace parameter(s) $query[''d''] = ''new_value''; // rebuild url $query_result = http_build_query($query); // new link <a href="<?php echo $_SERVER[''PHP_SELF'']; ?>?<?php echo $query_result; ?>">Link</a>


modify_url_query($url, array(''limit'' => 50));

Mi función para modificar consulta en url

function modify_url_query($url, $mod){ $purl = parse_url($url); $params = array(); if (($query_str=$purl[''query''])) { parse_str($query_str, $params); foreach($params as $name => $value) { if (isset($mod[$name])) { $params[$name] = $mod[$name]; unset($mod[$name]); } } } $params = array_merge($params, $mod); $ret = ""; if ($purl[''scheme'']) { $ret = $purl[''scheme''] . "://"; } if ($purl[''host'']) { $ret .= $purl[''host'']; } if ($purl[''path'']) { $ret .= $purl[''path'']; } if ($params) { $ret .= ''?'' . http_build_query($params); } if ($purl[''fragment'']) { $ret .= "#" . $purl[''fragment'']; } return $ret; }


function replaceUrlParameters($url = '''', $newParams = array()){ if($url){ $urlArray = parse_url($url); $queryString = $urlArray[''query'']; parse_str($queryString, $queryParams); $queryParams = array_merge($queryParams, $newParams); $urlArray[''query''] = http_build_query($queryParams); if(!empty($urlArray)){ $url = $urlArray[''scheme''].''://''.$urlArray[''host''].$urlArray[''path''].''?''.$urlArray[''query'']; } } return $url; } // $newParams = array of new parameters or old parameters with new value $replacedUrl = replaceUrlParameters($url, $newParams);