Como una continuación de Adding Values to a Query String in a URL, tengo un cuadro de búsqueda que agregará argumentos adicionales a la URL actual.Pasar la URL actual en el formulario enviar
http://example.com/?s=original+new+arguments&fq=category
código La forma se parece a esto:
<form id="FilterSearch" method="get" action="http://example.com/search_result.php">
Dónde search_result.php es sólo una nueva página que he creado para analizar el enviar y reorientar el uso de la nueva URL.
¿Cómo puedo pasar la URL original a search_result.php para poder manipular la URL?
editar # 1: He añadido un campo oculto:
<?php $current_url = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?>
<input type="hidden" name="current_url" value="<?php $current_url; ?>" />
<input name="send" id="send" type="submit" value="Search" />
Mi única salida es la adición de los argumentos de la página de presentación (search_result.php) y no la página de consulta previsto.
<?php
if (isset($_GET['send'])){
$searchField = urlencode($_GET['SearchField']);
$location = $_GET['current_url'];
$location = preg_replace($location, '/([?&]s=)([^&]+)/', '$1$2+'.$searchField);
header('Location: '.$location);
}
?>
estoy bien pasarlos mal o para que hagan mal o ambos!
editar # 2: URL de salida es como:
http://example.com/wp-content/themes/child_theme/search_result.php?SearchField=newTerm¤t_url=www.example.com%2F%3Fs%3DoldTerm%26searchsubmit%3D&send=Search
editar # 3 que se hizo eco de la URL de salida y es correcta. Me deshice de la preg_match solo para ver si podía obtener la misma URL cuando procesé el formulario. Curiosamente, recibí una página no encontrada. He decidido añadir http: // la cabecera y funcionó:
header('Location: http://'.$location);
Así que, por lo tanto, creo que la única cosa mal aquí es el preg_replace.
Parece que tiene que hacer value = " Php echo $ current_url;?>". También podría usar $ _SERVER ['HTTP_REFERER'] como dfsq sugiere como alternativa a este método, pero no siempre es confiable. –
tampoco funcionó:/ – AlxVallejo
¿Obtiene algún valor en su variable de $ location? –