Как перенаправить на текущую страницу с формой в php? - PullRequest
3 голосов
/ 28 января 2010

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

13 голосов
/ 28 января 2010

оставьте часть действия пустой для перенаправления на текущую страницу, например:

<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">
2 голосов
/ 28 января 2010

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

1 голос
/ 28 января 2010
<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 голосов
/ 03 февраля 2010

Работа только с методом записи.

0 голосов
/ 28 января 2010

попробуйте это 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" ...
0 голосов
/ 28 января 2010

$_SERVER[PHP_SELF], вероятно, index.php. Вы смотрели на это? Вам нужно:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...