2014-09-26 113 views
2

我想教自己的PHP,並且已經這樣做了幾個星期了。我目前正試圖圍繞GET和POST方法,特別是GET。這只是我寫的一些基本代碼:

<html> 
    <form action="" method="GET"> 
     <input type="submit" name="action" value="Laugh"> 
     <input type="submit" name="action" value="Cry"> 
    </form> 
</html> 

<?php 
    $action = isset($_GET['action']) ? $_GET['action'] : NULL; 

    switch ($action) { 
     case 'Laugh': 
      echo 'You laughed!'; 
      break; 
     case 'Cry': 
      echo 'You cried!'; 
      break; 
    } 
?> 

點擊提交按鈕後,上面的代碼將分別顯示案例結果。這適用於提交按鈕。如果我使用鏈接而不是提交按鈕,我將如何獲得相同的結果?我希望能夠點擊一個鏈接,讓我可以帶我到其中一個開關櫃。我嘗試過在線搜索,並且我無法獲得關於此的任何信息。

謝謝你的幫助!

+1

**避免使用相同的名字在你的表單**它會帶來混亂,因爲當你最需要 – 2014-09-26 05:24:37

+0

具有相同的名稱會導致你的GET變量的數組類型。你可以訪問它$ _GET ['action'] [0]或$ _GET ['action'] [1] – 2014-09-26 05:27:36

+0

你需要使用java腳本來達到這個目的 – 2014-09-26 05:29:19

回答

2

只需使用一個錨:

<a href="?action=Laugh">Please Laugh</a><br> 
<a href="?action=Cry">Please Cry</a> 

你的PHP代碼保持不變。

+0

完美解決了我的問題。謝謝!! :) – Hannah 2014-09-26 05:33:01

0

如果您希望在鏈接中傳遞值,您將希望使用$ _GET方法。 get方法使用URL傳遞值。所以說,你想使用一個鏈接它會看起來像

<a id="link" href="./?action=Laughed">Link</a> 

您將能夠獲得行動的價值一樣

$action = $_GET['action']; 

當然得到的值,你會想打掃一下因爲用戶將能夠通過使用相同的URL自己的價值觀作爲

http://YourFile.php?action=WhateverIWant! 

如果你需要的POST方法,你可以使用JavaScript來有這件事。在你的JavaScript你可以有

document.getElementById("link").addEventListener("click",function(e){ 
    e.preventDefault(); 
    document.getElementById("form-id-here").submit(); 
}); 
0

你可以使用查詢字符串。

<form> 
    <a href="a.com?id='1'" >Laugh</a> 
    <a href="a.com?id='2'" >Cry</a> 
</form> 

<?php 
    $action = isset($_GET['id']) ? $_GET['id'] : NULL; 

    switch ($action) 
    { 
     case '1': 
      echo 'You laughed!'; 
      break; 
     case '2': 
      echo 'You cried!'; 
      break; 
     default: 
      echo 'No Resuke Match'; 
    } 
?>