Come una continuazione di Adding Values to a Query String in a URL, ho una casella di ricerca che aggiungerà ulteriori argomenti all'URL corrente.Passa l'URL corrente sul modulo invia
http://example.com/?s=original+new+arguments&fq=category
codice La forma è simile al seguente:
<form id="FilterSearch" method="get" action="http://example.com/search_result.php">
Dove search_result.php è solo una nuova pagina che ho creato per analizzare il presentare e reindirizzare utilizzando il nuovo URL.
Come posso passare l'URL originale a search_result.php in modo da poter quindi modificare l'URL?
EDIT # 1: ho aggiunto un input nascosto:
<?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" />
La mia uscita è l'aggiunta di solo gli argomenti alla pagina di presentazione (search_result.php) e non la pagina di ricerca 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);
}
?>
Sto sbagliando o sbagliando o entrambi!
EDIT # 2: URL stampa ricorda:
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
EDIT # 3 ho fatto eco l'URL di uscita ed è corretto. Mi sono sbarazzato del preg_match solo per vedere se potevo ottenere lo stesso URL quando ho elaborato il modulo. È interessante notare che ho trovato una pagina non trovata. Ho deciso di aggiungere http: // l'intestazione e ha funzionato:
header('Location: http://'.$location);
Così dunque, io credo che l'unica cosa sbagliata qui è la preg_replace.
Sembra che tu debba fare value = " Php echo $ current_url;?>". Puoi anche usare $ _SERVER ['HTTP_REFERER'] come dfsq suggerisce come alternativa a questo metodo, ma non è sempre affidabile. –
non ha funzionato:/ – AlxVallejo
Hai ottenuto qualche valore nella variabile $ posizione? –