2010-01-28 3 views
3

Я попытался перенаправить на текущую страницу с формой в моем приложении php. Теперь я столкнулся с проблемой.Как перенаправить на текущую страницу с формой в 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"> 

, но он по-прежнему не работает.

Так что я должен обратиться за помощью к вам. Есть ли у вас какие-либо идеи по этому поводу? Как это исправить? Заранее спасибо.

+0

Что происходит *, если вы используете $ _SERVER ['PHP_SELF']? Ошибка? Главная? – Martijn

+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 

внутри папки ругой

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

@ Спасибо Sarfraz Ahmed, я использовал два способа, которые вы рекомендовали. Это не работает, потому что, когда я использую «somepage.php», я могу найти страницу. Я использовал единую индексную страницу для управления доступом ко всем другим страницам. –

+0

, то вы можете указать, что это тоже action = "index.php? Page = yourpage" – Sarfraz

+0

Я изменил его. Я понятия не имею, почему это не работает. Разочарование. –

0

$_SERVER[PHP_SELF] вероятно index.php. Вы посмотрели на него? Вам необходимо:

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

Я рекомендую построить вспомогательный элемент связи, который управляет вашими маршрутами.

+0

@ Спасибо ereno, с кодом:

. Он перенаправляет на index.php. Я думаю, что ты прав, но я не знаю, почему это неправильно. –

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 не должна перенаправлять страницу на место.

+0

@BenoKrapo, спасибо, я думаю, что скрытый ввод не работает в этом случае. –

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 пуст.

+0

@thanks, я пробовал этот путь. . Почему это неправильно? –

0

попробуйте этот указатель.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" ... 
+0

@turbod, это именно то, что я сделал, но «действие» часть всегда не работает. После того, как я отправлю, URL-адрес «index.php? Select1 = 1 & select2 = 1 & select3 = 1 & ref = interet & button = button». Нет соответствующей страницы. –

+0

эта работа только почтовый метод, не работает метод get. turbod

0

Работа только с помощью метода пост.

Смежные вопросы