2012-07-29 68 views
0

時提交這裏是我的PHP代碼,這是行不通的:執行一個PHP方法按下

<?php 

echo(' 
<forum> 
    <input type = "submit" value = "Previous" name = "Previous"/> 
    <input type = "submit" value = "Next" name = "Next"/> 
</forum>'); 

if(isset($_POST['Previous'])) 
    echo("Previous"); 

if(isset($_POST['Next'])) 
    echo("Next"); 

?> 

當我按下按鈕,沒有任何反應。

是否有可能做這樣的事情在PHP?如果不是,那麼達成相同結果的一個好的選擇是什麼?

回答

0
  1. form,不forum
  2. ,如果你想要它做你需要添加方法屬性POST請求:在<form method="post">
+0

它的工作原理!非常感謝。 – 2012-07-29 22:03:52

1

拼錯標籤;它是<form>,而不是<forum>。你還需要給它一個methodPOST

1

的bizzare,前兩件事情,也.. action="script location"<form>標記。

示例; <form method="post" action="index.php">

1

一些額外的建議。首先,讓HTML與PHP保持獨立是一種很好的做法。所以我會按照這些方法開始重構 - 這意味着您的IDE將正確地對您的HTML語法進行調色。

<form method="post"> 
    <input type = "submit" value = "Previous" name = "Previous"/> 
    <input type = "submit" value = "Next" name = "Next"/> 
</form> 

<?php 
if (isset($_POST['Previous'])) 
{ 
    echo "Previous"; 
} 

if (isset($_POST['Next'])) 
{ 
    echo("Next"); 
} 
?> 

還要注意所有if語句應該有括號 - 你可以逃脫,沒有他們的單行條款,但它的considered by some to be bad practice。另外,echo不需要括號。

形式是「得到」默認情況下,一般來說,你應該使用這種模式,除非你正在做一個不可重複的動作(如寫入文件或數據庫)。

最後 - 如果你正在使用POST並做了寫操作,那麼你應該馬上事後重定向,以避免瀏覽器警告,當您使用向後和向前按鈕。搜索「idempotent post」獲取更多信息。

+1

「如果陳述應該有大括號 - 你可以在沒有單行條款的情況下離開,但這被認爲是不好的做法。」 - 這不是一個壞習慣,只是一個風格問題。只要你在整個項目中一直這樣做,這一切都很好。例如WordPress的風格指南建議省略它們:http://codex.wordpress.org/WordPress_Coding_Standards#Brace_Style。 – valentinas 2012-07-29 22:15:55

+0

_it不錯的做法 - 我們對此不以爲然,但那很酷。我會改變文字以反映這一點是有爭議的。 – halfer 2012-07-30 08:53:34

+0

+1爲鏈接爲什麼如果沒有大括號的聲明被認爲是不好的做法。非常有效的一點。 – valentinas 2012-07-30 20:58:57