使用$ _POST检索记录

时间:2012-10-20 01:24:28

标签: php

我有点问题。我有一个导航栏

|  home  |  view  |  view(active)  |  view(deleted)  | 

当我点击视图时,我被带到view.php,它只检索所有数据库记录:

SELECT * FROM inventory  

在我的广告资源表格中,我有一个名为status的列,其值为yn。 (y表示活动,n表示未激活(或删除))。

当我点击view(active)view(deleted)链接时,我想执行不同的查询,例如:

SELECT * FROM inventory WHERE status LIKE 'y' (for retrieval of active records)  
SELECT * FROM inventory WHERE status LIKE 'n' (for retrieval of deleted records)  

如果我将?view=y附加到view.ph p链接的末尾,则可以正常工作。我的表单的表单操作引用自己(view.php)除了附加了它的视图类型:?view=y?view=n然后有条件确定要执行哪个mysql查询。但是,我想用POST来处理这种情况并且它无法正常工作。我不希望我的网址中包含任何值。但是$_GET可以正常工作。

感谢。

CODE(查询的view.php条件)

    if ($_POST['view'] == "y") {
        $result = mysql_query("SELECT * FROM inventory WHERE status LIKE 'y'"); }
    else if ($_POST['view'] == "n")  {
        $result = mysql_query("SELECT * FROM inventory WHERE status LIKE 'n'"); }
    else if ($_POST['submit'] == "search") {
        $result = mysql_query("SELECT * FROM inventory WHERE descrip LIKE '%$searchString%'"); }
    else {
        $result = mysql_query("SELECT * FROM inventory"); }

代码(我的导航栏)

<div id="navigation">
    <a href="add.php"><input type="button" value="ADD" /></a>
    <a href="view.php"><input type="button" value="VIEW" /></a>
    <a href="view.php?view=y"><input type="button" value="view active" /></a>
    <a href="view.php?view=n"><input type="button" value="view deleted" /></a>
    <div><br />
        <form action="view.php" method="POST">
            <input type="text" name="searchDescription" id="search" placeholder="search for text in description" value="<?php echo $_POST['searchDescription']; ?>"/>
            <input type="submit" value="SEARCH" name="submit" id="searchDescriptionButton" />
        </form>
    </div>
</div>

3 个答案:

答案 0 :(得分:0)

您可以执行此操作 - 您可以为此目的向页面添加表单,并使用隐藏字段存储帖子值(y,n)

<form name="gotoview" action="view.php" method="POST">
  <input type="hidden" name="view" id="view" value="" />
</form>

您的链接应发布表单

<a href="#" onclick="document.forms['gotoview'].view='n';document.forms['gotoview'].submit();">View discontinued</a>

使用JavaScript填充隐藏字段,然后将表单发布到正在运行的网址。

答案 1 :(得分:0)

如果您正在进行POST,那么如果您传递的值是所请求页面的URL的一部分,那么它将在$ _GET中。

一个快速/脏/坏的解决方法是简单地使用$ _REQUEST,它是_GET和_POST的组合,但不建议这样做,因为无法保证PHP的配置方式以及哪种方法优先。例如具有

<form action="example.php?somevar=value" method="post">
   <input type="submit" name="somevar" value="othervalue" />
</form>

是不确定的,具体取决于您的PHP安装的variable_order设置。

请注意,somefield LIKE 'someconstantvalue'有点毫无意义,与somefield='someconstantvalue'完全相同。 LIKE用于通配符搜索,通常应与常量值比较混合使用。

答案 2 :(得分:0)

您可以使用隐藏的输入类型将POST参数传递给您的php脚本。有许多更优雅的解决方案,但这里需要最少的代码更改。

在表单中添加<input type="hidden" name="view" id="viewvalue">,并让按钮调用javascript函数,将值设置为yn并提交表单。

<script>
function setView(wanted)
{
   document.getElementById("viewvalue").value = wanted;
   document.getElementById("viewform").submit();
}
</script>

请注意,此函数假定您已向表单提供了标识viewform

然后将按钮“a href”中的链接更改为javascript:setView('y')javascript:setView('n),然后您就可以设置。

编辑:因为你不能使用javascript,所以它应该是什么样子

<div id="navigation">
<a href="add.php"><input type="button" value="ADD" /></a>
<a href="view.php"><input type="button" value="VIEW" /></a>
<form name="viewactiveform" action="view.php" method="POST">
    <input type="hidden" name="view" value="y">
    <input type="submit" value="view active" />
</form>
<form name="viewdeletedform" action="view.php" method="POST">
    <input type="hidden" name="view" value="n">
    <input type="submit" value="view deleted" />
</form>
<div><br />
    <form action="view.php" method="POST">
        <input type="text" name="searchDescription" id="search" placeholder="search for text in description" value="<?php echo $_POST['searchDescription']; ?>"/>
        <input type="submit" value="SEARCH" name="submit" id="searchDescriptionButton" />
    </form>
</div>

相关问题