将额外的值添加到$ _GET并保持旧的

时间:2013-04-20 21:49:37

标签: html get

假设我有mydomain.com/test.php?pikazi=true这样的网站 我有表格

  <form action="test.php"  method="get">
    <input name="drzava-asc" type="image" src="images/sort-asc.gif">
    <input name="drzava-desc" type="image" src="images/sort-desc.gif" >
  </form>

如何在从表单添加新内容时保留现有prikazi=true,这样就可以

mydomain.com/test.php?pikazi=true&drzava-asc.x=6&drzava-asc.y=1

drzava-asc的值由脚本生成,因为它是图像未提交按钮。

我使用现有网址:

parse_str($_SERVER['QUERY_STRING'], $query_arr);
$url=http_build_query($query_arr);

我可以将它用作隐藏字段,但不知道如何。还有其他方法吗?

2 个答案:

答案 0 :(得分:1)

<强>编辑:

您只需在表单中添加隐藏字段即可:

<form action="test.php"  method="get">
  <input name="prikazi" type="hidden" value="true" />
  <input name="drzava-asc" type="image" src="images/sort-asc.gif">
  <input name="drzava-desc" type="image" src="images/sort-desc.gif" >
</form>

就是这样:)干杯!

答案 1 :(得分:1)

你不能,不能直接。

如果您使用的是POST,则可能只有action="",并且会保留所有GET个变量。但是,您使用的是GET,因此会覆盖它们。

如果您使用的是PHP等服务器端语言,则可以这样做:

<form action="test.php" method="get">
    <?php foreach($_GET as $k=>$v) echo "<input type=\"hidden\" name=\"".$k."\" value=\"".htmlspecialchars($v)."\" />"; ?>
    Rest of form here...
</form>

或类似的JavaScript:

var forms = document.getElementsByTagName('form'), l = forms.length, i,
    qs = location.search.substr(1).split("&"), m = qs.length, j, tmp, inp;
for( i=0; i<l; i++) {
  if( forms[i].method.toLowerCase() != "get") continue;
  for( j=0; j<m; j++) {
    inp = document.createElement('input');
    inp.type = "hidden";
    tmp = qs[j].split("=");
    inp.name = tmp.shift();
    inp.value = tmp.join("=");
    forms[i].appendChild(inp);
}