Правильное использование метода GET в форме (HTML и PHP)
Ну, у меня есть небольшой недостаток, который дает мне головные боли я надеюсь, кто-то может помочь мне определить мою ошибку, заранее большое спасибо. Дело в том, что
у меня есть небольшой искатель:
<form action="search" method="GET" autocomplete="off">
<input type="text" name='texto' class="form-control" placeholder="texto a buscar" required>
<select class="form-control" name="ciudad" required>
<option value="1">Opcion 1</option>
<option value="2">Opcion 1</option>
</select>
<button type="submit" class="btn btn-primary" value="Buscar">Buscar</button>
</form>
Идея состоит в том, что этот небольшой поисковик выполняет поиск с помощью параметра GET, чтобы иметь ссылку поиска.
с помощью. htaccess и php я создаю динамические привязки. С помощью. htacces я указываю, какой шаблон показать. Я делаю это так:
.htaccess
RewriteRule ^search ?search [L]
контроллер
elseif(isset($_GET['search'])){
$respuesta = Paginas::PlantillaBusqueda();
}
Менеджер шаблонов
public static function PlantillaBusqueda(){
$incluir = "views/plantillas/busqueda/index.php";
return $incluir;
}
все вышеперечисленное, чтобы моя ссылка поиска оставалась со следующей структурой (пожалуйста, особое внимание на параметре ? search):
Http://localhost/miproyecto/?search & text=asdas & город=18
Если я получаю доступ к проекту с этим URL-адресом без проблема обнаруживает параметры "текст и город"
проблема заключается в следующем:
при использовании формы это отправляет меня по следующей ссылке, и таким образом я не могу прочитать параметры GET: (что я делаю не так? :
Http://localhost/miproyecto/search?texto=asdas&ciudad=18
Заранее спасибо за вашу помощь. Объятие.
1 answers
Вы можете контролировать его с помощью jquery, это будет что-то вроде этого:
<form action="search" method="GET" id="form" autocomplete="off">
<input type="text" name='texto' class="form-control" placeholder="texto a buscar" required>
<select class="form-control" name="ciudad" required>
<option value="">Seleccione</option>
<option value="1">Opcion 1</option>
<option value="2">Opcion 1</option>
</select>
<input id="submit-hidden" type="submit" style="display: none" />
<button type="submit" id="enviar" class="btn btn-primary" value="Buscar">Buscar</button>
</form>
И с Jquery:
$(function(){
$("#enviar").click(function(e){
e.preventDefault();
var texto = $("input[name=texto]").val();
var ciudad = $("select[name=ciudad]").val();
if (!$("#form")[0].checkValidity()) {
$("#form").find("#submit-hidden").click();
}else{
window.location.href="http://localhost/miproyecto/?search&texto="+texto+"&ciudad="+ciudad
}
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="search" method="GET" id="form" autocomplete="off">
<input type="text" name='texto' class="form-control" placeholder="texto a buscar" required>
<select class="form-control" name="ciudad" required>
<option value="">Seleccione</option>
<option value="1">Opcion 1</option>
<option value="2">Opcion 1</option>
</select>
<input id="submit-hidden" type="submit" style="display: none" />
<button type="submit" id="enviar" class="btn btn-primary" value="Buscar">Buscar</button>
</form>