仅在单击第二个按钮后参数才会显示在URL中

时间:2014-07-01 07:43:29

标签: php

我的搜索表格存在奇怪的问题。输入关键字并执行搜索请求后,我得到空参数值。

例如,我在搜索字段中输入单词“something”

我看到一个空值:

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) && 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>

2 个答案:

答案 0 :(得分: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>

一个简单的代码。

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

答案 1 :(得分:0)

将您的方法从post改为get。我还建议你使用一个简单快速编码的框架。一些包括symfony2,laravel