如何在PHP中使用表单重定向到当前页面?

时间:2010-01-28 14:24:47

标签: php forms

我尝试在我的php应用程序中使用表单重定向到当前页面。现在我遇到了一个问题。

<form name="myform" action="?page=matching" method="GET">

<input id="match_button" type="submit" name="button" value="button" onClick="func_load3()" />

</form>

action="?page=matching"表示当前页面,因为我在php应用程序中使用单个条目。

打开代码后,当我点击按钮时,它会重定向到主页。

我尝试使用:

<form name="myform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">

但它仍然无效。

所以我必须向你寻求帮助。你有什么想法吗?怎么解决?提前致谢。

6 个答案:

答案 0 :(得分:13)

将操作部分留空以重定向到当前页面,例如:

<form action="">

或者如果你想重定向到其他页面,你可以这样做:

<form action="somepage.php">  // page must be in the same directory

如果你想附加查询字符串,那么:

<form action="somepage.php?var=value&var2=value">

如果您想重定向到一个目录,那么:

<form action="../somepage.php?var=value&var2=value">

两个目录:

<form action="../../somepage.php?var=value&var2=value"> and so on

在nother文件夹中

<form action="yourfolder/somepage.php?var=value&var2=value">

答案 1 :(得分:2)

PHP_SELF不包含查询字符串,您必须在末尾标记

<?php
$formAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) { 
    $formAction .= "?" . $_SERVER['QUERY_STRING']; 
}
?>

然后将其设置为表单操作:

<form name="myform" action="<?=$formaction;?>" method="GET">

你我想这样做:

<form name="myform" action="<?=$_SERVER['PHP_SELF']. "?" . $_SERVER['QUERY_STRING'];?>" method="GET">

也可以工作,不确定如果QUERY_STRING为空,它会做什么

答案 2 :(得分:1)

<form name="myform" method="GET">
  <input type="hidden" name="page" value="matching" />
  <input id="match_button" type="submit" name="button" value="button" onClick="func_load3()" />
</form>

此外,JS函数func_load不需要将页面重定向到某个地方。

答案 3 :(得分:0)

$_SERVER[PHP_SELF]可能是index.php。你看过了吗?你需要:

<?php echo $_SERVER['PHP_SELF']. '?page=matching'; ?>

我建议建立一个管理路线的链接助手。

答案 4 :(得分:0)

试试这个 的index.php:

switch ($_REQUEST['site']){
  case 'somethings':      
     if ($_POST['k_send']){ 
       //somethings
     }
  ...

form.php的

<form name="send" action="index.php?site=somethings" 
  <input ...
  <input type="submit" name="k_send" ...

答案 5 :(得分:0)

仅使用post方法。