我有点问题。我有一个导航栏
| home | view | view(active) | view(deleted) |
当我点击视图时,我被带到view.php
,它只检索所有数据库记录:
SELECT * FROM inventory
在我的广告资源表格中,我有一个名为status
的列,其值为y
或n
。 (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>
答案 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函数,将值设置为y
或n
并提交表单。
<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>