【问题标题】:PHP: Confirm Box before deletingPHP:删除前确认框
【发布时间】:2013-07-04 00:41:32
【问题描述】:

我想在我的网站上添加一个按钮,用户可以在其中删除他的帐户。不幸的是,我不知道如何实现它...... 到目前为止我的代码: 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('";

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

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

【问题讨论】:

  • header("refresh:1;url=intern.php?act=account"); - 这是什么?
  • 如果您没有回答,它应该将我返回到我的帐户页面。
  • 不,我刚刚问过它是什么。我不知道header() javascript 函数

标签: php javascript html mysql stored-procedures


【解决方案1】:

在这部分中,您将在没有 php open 标记的 javascript 中调用 php 重定向(我认为?),因此这是行不通的。相反,如果“if”语句返回 true(yes),则可以使用 javascript reditrect,然后重定向到带有 get 变量 delete 或其他内容的 url,见下文。

编辑——您可能也需要 id,所以我进行了调整。另外,在表单中的 onclick 中,您需要传递 id,除非它存储在会话变量或其他东西中,在这种情况下,您不需要将其传递到 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 作为函数名称。最后一件事,为了使它起作用,输入类型为“按钮”

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我从来没有用过ajax编程,所以对它不熟悉。但我想我只需要将 $SQL_delete_user 绑定到 if 子句中。我只是不知道如何
    【解决方案3】:

    我在这个问题上搜索并挣扎,直到我做了一点横向思考。

    我使用 JavaScript 来显示一个 hidden div,其中包含是/否选项。

    然后在 Yes 选项周围的 onClick 选项将 php 脚本加载到 hidden iFrame。 p>

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

    一个好处是能够以任何我想要的方式设置 div 的样式,使用效果显示和隐藏它,并将它准确地放置在它看起来最好的位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多