2014-07-01 33 views
0

我的搜索表单有奇怪的问题。在输入关键字并执行搜索请求后,我得到空的参数值。参数仅在第二次按钮点击后出现在URL中

比如我在搜索栏中键入单词“东西”

我看到一个空值:

search.php?keyword= 

这之后我输入关键字“其他”和我收到:

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) && 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) && isset($_POST['search_requested'])) { 
          print strip_tags($_POST['search_keywords']); 
         } 
         ?>"><input type="submit" value="Search"> 
        </form> 
+1

您的文本输入的名称是'name =“search_keywords”'而当您正在寻找'keyword'时。 – Darren

+2

另外为什么要混合'GET'&'POST'?它只会在第二轮设置(*当他们搜索*时),因为“POST”项有一个值。 – Darren

+0

我了解我所做的GET和POST messup。我修好了它。一切都与GET并且这种行为已经消失。 –

回答

0
<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> 

一个简单的代码。

你的问题是当你发送表单时,它会保存关键字,直到第二次发送。

+2

你需要改进这个答案,这是超越低质量。 – Darren

+0

对,对不起,我在打电话。 – wwwanaya

+3

@wwwanaya_我在phone_?真的吗?这是互联网,它不需要实时交互。没有人在乎你是否在打电话,只是完成了通话,然后写了一个有用的答案。还是有人强迫你在你的电话中写回答?! – dirkk

0

改变你的方法从发布获取。我也会建议你使用一个简单快速的编码框架。一些包括symfony2,laravel

相关问题