How to redirect to the current page with form in php?
I tried to redirect to the current page with form in my php application. Now i have met a problem.
<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"
means the current page, because i use the single entry in my php application.
With the code upon, When i click the button, it redirect开发者_如何转开发s to the homepage.
And I tried to use:
<form name="myform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
but it still doesn't work.
So i have to ask for help from you. Do you have any ideas about that? How to fix it? Thanks in advance.
leave the action part empty to redirect to current page eg:
<form action="">
or if you want to redirect to some other page, you can do so like this:
<form action="somepage.php"> // page must be in the same directory
If you want to append query string then:
<form action="somepage.php?var=value&var2=value">
If you want to redirect to a page one directory back then:
<form action="../somepage.php?var=value&var2=value">
Two directories:
<form action="../../somepage.php?var=value&var2=value"> and so on
inside a nother folder
<form action="yourfolder/somepage.php?var=value&var2=value">
PHP_SELF doesnt include Query string, you have to tag that on the end
<?php
$formAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$formAction .= "?" . $_SERVER['QUERY_STRING'];
}
?>
then set that as your form action:
<form name="myform" action="<?=$formaction;?>" method="GET">
Thou i guess just doing:
<form name="myform" action="<?=$_SERVER['PHP_SELF']. "?" . $_SERVER['QUERY_STRING'];?>" method="GET">
Might work too, not sure what it will do if the QUERY_STRING is empty thou
<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>
Alsoy, the JS function func_load needs not to redirect the page to somewhere.
$_SERVER[PHP_SELF]
is probably index.php. Have you looked at it? You need:
<?php echo $_SERVER['PHP_SELF']. '?page=matching'; ?>
I recommend to build a link helper that manages your routes.
try this 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" ...
Work only with post method.
精彩评论