Reputation: 5312
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 redirects 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.
Upvotes: 4
Views: 25517
Reputation: 1988
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" ...
Upvotes: 0
Reputation: 443
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
Upvotes: 2
Reputation: 3902
<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.
Upvotes: 1
Reputation: 19118
$_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.
Upvotes: 0
Reputation: 382746
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">
Upvotes: 14