2010-01-28 103 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 2010-01-28 14:35:03

+0

是的,它重定向到主頁。我不知道如何解決它。你可以幫幫我嗎 ? – 2010-01-28 15:05:10

回答

13

離開動作部分空重定向到當前頁面例如:

<form action=""> 

,或者如果你想重定向到其他頁面,你可以這樣做:

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

如果您想追加查詢字符串:

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

如果你想重定向到一個頁面, EN:

<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」,我可以找到頁面。我使用單個索引頁面來控制對所有其他頁面的訪問。 – 2010-01-28 14:35:20

+0

然後你可以指定像這樣action =「index.php?page = yourpage」 – Sarfraz 2010-01-28 14:42:59

+0

我改變了它。我不知道爲什麼它不起作用。失意。 – 2010-01-28 15:23:42

0

$_SERVER[PHP_SELF]可能是index.php文件。你看過嗎?你需要:

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

我建議建立一個管理你的路線的鏈接助手。

+0

@感謝ereno,其代碼如下:

」method =「GET」>。它重定向到index.php。我認爲你是對的,但我不知道爲什麼它是錯的。 – 2010-01-28 14:38:42

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,謝謝,我認爲隱藏的輸入在這種情況下不起作用。 – 2010-02-01 09:17:47

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

@感謝,我試過這種方式。 」method =「GET」>。爲什麼它錯了? – 2010-02-01 09:18:14

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」。沒有「匹配」頁面。 – 2010-02-01 09:22:06

+0

這項工作只是發佈方法,不工作的get方法。 turbod 2010-02-03 08:17:37

0

工作只能用POST方法。

相關問題