2011-05-31 89 views
0

我有一個提交按鈕來刪除用戶:如何轉換的HTML提交按鈕鏈接在PHP

<form class="spform" action="<?=$_SERVER['PHP_SELF']?>" method="post" name="userdetails" onsubmit=""> 
    <input type="submit"' name="remove_user[<?=$i?>]" id="formButton" value="Remove" /> 
</form> 

我的腳本將刪除用戶,如下所示:

if (isset($_POST['remove_user'])) 
{ 
    for ($j = 1; $j <= $_SESSION['highest_user_index']; $j++) 
    { 
     if (array_key_exists($j, $_POST['remove_user'])) 
     { 
      // remove user details from session variables 
      unset($_SESSION["delegate".$j]); 
      $_SESSION['number_of_usesr'] = $_SESSION['number_of_users'] - 1; 
     } 
    } 
} 

現在我想將提交按鈕更改爲鏈接。我該怎麼做呢?

回答

1

你能夠 使用JavaScript:

<form class="spform" action="<?=$_SERVER['PHP_SELF']?>" method="post" name="userdetails" onsubmit=""> 
    <a href="javascript: submitform()">Delete user</a> 
    <input type="hidden" name="remove_user[<?=$i?>]" value="Remove" /> 
</form> 

<script type="text/javascript"> 
function submitform() 
{ 
    document.userdetails.submit(); 
} 
</script> 

或鏈接與GET參數:

<a href="<?php echo $_SERVER['PHP_SELF']."?remove_user=1&userid=".$i ?>">Delete user</a> 

在你的服務器端代碼,你必須讀出GET參數

if (isset($_GET['remove_user'])) 
{ 
    userid = $_GET['userid']; 

} 

很抱歉,如果有在代碼中的任何錯誤我沒有嘗試

+0

感謝您的解決方案,鏈接的作品爲提交按鈕 – n92 2011-05-31 06:45:13

+0

但其點擊刪除用戶 – n92 2011-05-31 07:17:07

+0

後刪除所有uesrs我想只有選定的用戶將被刪除並非所有 – n92 2011-05-31 07:25:54

5

你不想改變按鈕,一個鏈接,因爲鏈接會發出GET請求和GET requests are supposed to be safe and idempotent。當你再次獲得URI時,每次都會發生同樣的事情。一旦你刪除了用戶,這是不可能的。

另外,具有刪除鏈接,而不是按鈕,可以成爲一個問題,當機器人或蜘蛛可以索引你的頁面。你會不會因爲一些殭屍觸發了這些鏈接失去用戶的整個數據庫的第一人。

還要注意的是使用JavaScript建議的解決方案不被認爲是很好的做法,不提倡這樣用:

0
<form name="userdetails" onSubmit="return false;"><a href="javascript: submitform()">delete user</a></form> 


<script type="text/javascript"> 
function submitform(){ 
document.userdetails.submit();}</script> 

在這裏A HREF會工作,因爲它適用於提交按鈕。帖子價值和表單行爲將保持原樣。