我有一个应用程序,它使用GET参数来呈现内容......产品列表的URL看起来像
appdomain.com/views/admin-panel.php?adminpage=product&task=list
我有这样的表格:
<form style="display: inline-block;" action="admin-panel.php?<?php echo http_build_query($_GET) ?>" method="get">
<?php
$search = !empty($_GET["search"]) ? $_GET["search"] : "";
?>
<input type="text" name="search" value="<?php echo $search; ?>"/>
<input type="submit" value="Buscar"/>
</form>
当我发送它时,它应该看起来像:
appdomain.com/views/admin-panel.php?adminpage=product&task=list&search=<USERINPUT>
但实际上看起来像是:
appdomain.com/views/admin-panel.php?search=<USERINPUT>
所以...应用程序不起作用,因为缺少其他参数。
我在表单操作中做错了什么?
答案 0 :(得分:1)
您应该使用表单的方法post
来执行此操作。或者坚持使用get
并使用隐藏字段
<form action="foo.php?<?php echo http_build_query($bar) ?>" method="post">
答案 1 :(得分:0)
使用您需要的参数获取干净URL并且没有重复的技巧是:
<form style="display: inline-block;" action="admin-panel.php" method="get">
<?php
foreach($_GET as $key=>$value) {
//Avoid duplicate parameters
if($key !== "search") {
?>
<input type="hidden" name="<?php echo $key; ?>" value="<?php echo $value; ?>"/>
<?php
}
}
$search = !empty($_GET["search"]) ? $_GET["search"] : "";
?>
<input type="text" name="search" value="<?php echo $search; ?>"/>
<input type="submit" value="Buscar"/>
</form>