如何将HTML提交按钮转换为php中的链接

时间:2011-05-31 06:20:36

标签: php html

我有一个提交按钮来删除用户:

 <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;
        }
    }
}

现在我想将提交按钮更改为链接。我该怎么做?

3 个答案:

答案 0 :(得分:5)

您不希望将按钮更改为链接,因为链接会发出GET请求并GET requests are supposed to be safe and idempotent。再次获取URI时,每次都应该发生同样的事情。删除用户后,将无法再进行此操作。

此外,当机器人或蜘蛛可以为您的网页编制索引时,删除链接而不是按钮可能会成为一个问题。你不会是第一个失去整个用户数据库的人,因为有些机器人触发了这些链接。

另请注意,使用JavaScript的建议解决方案不被视为良好做法,不鼓励使用它们:

答案 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'];

 }

很抱歉,如果代码中有任何错误我没有尝试

答案 2 :(得分: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>

在这里,一个href将起作用,因为它适用于提交按钮。后期值和表单操作将保持不变。