2011-05-31 112 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会工作,因为它适用于提交按钮。帖子价值和表单行为将保持原样。