#php
#php
Вопрос:
У меня странная проблема с моей формой поиска. После того, как я ввожу ключевое слово и выполняю поисковый запрос, я получаю пустое значение параметра.
Например, я ввожу в поле поиска слово «что-то»
Я вижу пустое значение:
search.php?keyword=
После этого я ввожу ключевое слово «else» и получаю:
search.php?keyword=something
вместо search.php?keyword=else
Они каким-то образом появляются с «одним шагом назад»
Я пытался выполнить отладку с помощью print_r и var_dump, но я могу напечатать только некоторые значения, которые не объясняют мою проблему.
Я упускаю что-то очень тривиальное?
Вот что у меня есть:
Функция моего класса:
public function show_search_result() {
$this->search_keywords = strip_tags($_GET['keyword']);
$this->_db->query("SELECT * from posts WHERE post_title LIKE '%$this->search_keywords%' OR post_content LIKE '%$this->search_keywords%' LIMIT 100");
$this->rows_results_found = $this->_db->resultset();
}
И моя форма:
<form action="search.php?keyword=<?php
if (isset($search_results->rows_results_found) amp;amp; isset($_POST['search_requested'])) {
print strip_tags($_POST['search_keywords']);
}
?>" method="post">
<input type="hidden" name="search_requested">
<input type="text" name="search_keywords" value="<?php
if (isset($search_results->rows_results_found) amp;amp; isset($_POST['search_requested'])) {
print strip_tags($_POST['search_keywords']);
}
?>"><input type="submit" value="Search">
</form>
Комментарии:
1. вместо этого ваше имя для ввода текста — это
name="search_keywords"
когда вы ищетеkeyword
..2. Также почему вы смешиваете
GET
amp;POST
? Он будет установлен только во втором раунде ( когда они выполнят поиск ), потому что уPOST
элемента есть значение.3. Я понял, что я сделал с получением и отправкой. Я исправил это. Все с GET и это поведение исчезло.
Ответ №1:
<form action="" method=get>
<input type=text id=se>
<?php
if($_GET != null){
$sekw = $_GET ['se'];
$sql = //the query like='$sekw' limit=100;
?>
<input type=submit>
</form>
Простой код.
Ваша проблема в том, что при отправке формы ключевые слова сохраняются до второй отправки.
Комментарии:
1. Вам нужно улучшить этот ответ, он выходит за рамки низкого качества.
2. Да, извините, я на телефоне.
3. @wwwanaya Я на телефоне ? Серьезно? Это Интернет, ему не нужно взаимодействие в реальном времени. Никого не волнует, разговариваете ли вы по телефону, просто завершите звонок и напишите полезный ответ впоследствии. Или кто-то заставил вас написать ответ во время вашего звонка?!
4. Я в приложении телефона, а не в вызове.
Ответ №2:
измените свой метод с post на get. также я бы посоветовал вам использовать фреймворк для простого и быстрого кодирования. некоторые включают symfony2, laravel