(PHP)如何输入隐藏数据以从输入框中获取值

时间:2018-04-11 20:58:02

标签: php html

您好我尝试通过Stack研究我的问题大约3个小时,但我仍然没有找到。 所以我决定创建一个主题来询问我的问题。

我正在创建搜索引擎,结果如下:

  1. 如果我输入测试文本到输入表格,然后点击键盘上的“输入”按钮,搜索结果将正常工作。
  2. 如果我在输入表单中键入测试文本,然后点击网页上的“搜索”按钮,搜索结果将无效。
  3. 我的问题是结果No.2。

    这是我的代码:

     <form action="search_content.php" method="POST" >  
        <div class="input-group mainsearch-home">           
             <input type="text" class="input-group-field" name="homesearchfield" id="homesearchfield2" placeholder="What are you looking for?" autocomplete="off">
             <div class="input-group-button">
                  <button type="button" class="button button--search" >search</button>              
                  <input type="hidden" name="homesearchfield" value="search">
             </div>
        </div>
     </form>
    

    我做错了什么? 我认为我的问题是从输入类型隐藏数据发生的。 所以我想知道如何从输入文本框中获取值并将值发送到我的目标页面。

    我在下面的“回复”页面添加了一些PHP代码。

     $viewstate = isset( $_POST["homesearchfield"] ) ? $_POST["homesearchfield"] : "" ;
     $sql="SELECT *  FROM `article` WHERE topic_article LIKE '%$viewstate%' order by id_article DESC";
    

2 个答案:

答案 0 :(得分:2)

目前您的表单并不知道该按钮是用于提交表单,可以通过更改按钮上的类型来修复该表单:

<button type="submit" class="button button--search" >search</button>

你也可以使用:

<input type="submit" class="button button--search" value="search" />

答案 1 :(得分:0)

控制数据的选项是使用JavaScript / jQuery来控制表单的操作。这种方式还允许您查看在实际发送之前发布的数据,您甚至可以将帖子注释掉,并且只需使用您希望获得的正确数据来获取表单。

为了序列化工作,您需要为要传回数据的每个项目命名。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script lang="JavaScript">
$(function(){
    $("#button").click(fuction()
    {
        var formData = $("#form").serialize();
        alert(formData);
        /*
        $.post({"search_content.php",
                formData,
                function(returndata)
                {
                    //do something

                    //this will load the return data into the div tag on the fly
                    $("#divReturn").html(returndata); 
                },
                "text"
          });
          //*/
    });

});
</script>
<form id="form" onsubmit="return false;" >  
    <div class="input-group mainsearch-home input-group--search inputs--raspberry">         
         <input type="text" class="input-group-field" name="homesearchfield" id="homesearchfield2" placeholder="What are you looking for?" autocomplete="off">
         <div class="input-group-button">
              <button type="button" class="button button--search" id="button" name="button" value="search" >search</button>              
         </div>
    </div>
</form>
<div id="divReturn">
</div>