PHP:删除前确认框

时间:2013-07-04 00:41:32

标签: php javascript html mysql stored-procedures

我想在我的网站上添加一个按钮,用户可以删除他的帐户。不幸的是我不知道如何实现它...... 我的代码到目前为止: 使用Javascript:

 <script language = "JavaScript" >

        function delete(id) {
            if (confirm("Do your really want to delete your account?"))
            {
                header("refresh:1;url=intern.php?act=account"); 
            }
            else
            {
            }
        }

</script>

我的.html文件:(没有像html标题头那样的标签......它以?php开头......)

<td></form><input type='submit' name='deleteuser' value='Delete Account' onClick='return delete()'/></form></td>

此外,我在.html文件中有一个if子句:

if(isset($_POST['deleteuser']))  {

    if(delete() == true){
    delete_user;
    }
    else{
    header("refresh:1;url=intern.php?act=account");
    }

}

按钮就在那里,当我点击它时,它询问我是否确定要删除我的帐户,但之后我收到一个错误:“致命错误:调用未定义的函数delete()”< /强>

我有一个名为sp_deleteAccount的存储过程。在我的config.php中,我将其声明为:

$SQL_delete_user = "CALL sp_deleteAccount('";

现在我不知道如何在代码中绑定该存储过程,以便在按下“是,我想删除我的帐户”后删除帐户。

希望我没有错过任何事情,有人可以帮助我 JOP

3 个答案:

答案 0 :(得分:2)

在这部分你是在没有php开放标记的javascript中调用php重定向(我认为?),这样就不行了。相反,如果'if'语句返回true(是),则可以使用javascript reditrect,然后重定向到带有delete变量或其他内容的url,请参见下文。

编辑 - 你可能也想要id,所以我做了调整。以你需要传递id的形式在onclick中输入,除非它存储在会话变量或其他东西中,在这种情况下你不需要将它传递给url。你的SQL应该以“WHERE id =”结尾然后只是将id添加到查询中。这只是一个简单的例子,让你开始,总是谨慎的SQL注入,但我会留下来阻止它。

 <script language = "JavaScript" >

    function deleteUser(id) {
        if (confirm("Do your really want to delete your account?"))
        {
            window.location.href= 'intern.php?delete=true&id='+id; 
        }
        else
        {
           window.location.href = 'intern.php?act=account'; 
        }
    }

</script>

接下来在intern.php中检查get变量

if(isset($_GET['delete']))  {

    $mysqli = new mysqli(connection variables here);
    $mysqli->query($SQL_delete_user.(int)$_GET['id']);

}

尝试一下,根据需要重新排列代码,但应该完成。 至于错误,您不能使用关键字delete作为函数名称。最后一件事,为此工作使输入类型为“按钮”

答案 1 :(得分:0)

我不确定是否有办法使用您尝试的方法实现它,但我不知道它。为此,我通常会在jquery-ui对话框中的OK按钮的click事件上使用对url的ajax调用。然后处理逻辑并在成功时创建另一个对话框以进行确认。

答案 2 :(得分:0)

我搜索并努力解决这个问题,直到我做了一点横向思考。

我使用 JavaScript 来显示包含“是/否”选项的隐藏 div

然后围绕选项 onClick ,将 php 脚本加载到隐藏 iFrame中。

选项周围的 onClick 只是隐藏了 div 而没有做任何其他事情。

奖励是能够以任何我想要的方式设计div,使用效果显示和隐藏它,并将其准确放置在最佳位置。