0

我对stackoverflow并不陌生,因为我已经得到了我的问题的答案(其他人问的)在这里回答了很长一段时间,但我终于遇到了一些我还没有找到答案的东西,所以希望你们/女孩可以帮忙。

为了简要介绍一下历史,我为实验室设备构建了一个硬件检查系统。不久前,我正在手动运行mysql命令来添加设备,但是当我的工作变得太多我的其他职责后,我决定建立一个管理页面来管理它并分配一些其他不了解内部情况的管理员方法修改硬件数据库以及基本的添加/删除用户功能。这已经存在了很长一段时间,并且通常工作得很好,但是在另一个管理员试图激活浏览器窗口并意外单击另一个管理员用户的删除按钮的不幸事件之后,我决定放入一个窗口确认提示并在确认窗口中引用用户名。这是我现在拥有的代码。我已经删除了任何不相关的内容,除了我的部分 我遇到了麻烦。如果我应该发布整个内容,我可以,但它只差 200 行。

function DelUserValidate()
{
var clicked=document.forms["deluser"]["delrootuser"].value;
var confirmed=confirm("Are you sure you want to delete this user: "+clicked);

if (confirmed==true)
    {
return true;
    }
else
    {
return false;
    }
}
<?php
$con = mysql_connect("localhost","webby","webical");
mysql_select_db("checkout", $con);
$result = mysql_query("SELECT * FROM root_mem ORDER BY id");

echo "<table border='1'>
<tr>
<th>Username</th>
<th>Password</th>
</tr>";

while($row = mysql_fetch_array($result))
    {
    echo "<tr>";
    echo "<td>" . $row['username'] . "</td>";
    $rootusername = $row['username'];
    echo '<td bgcolor="#fff">' . $row['password'] . "</td>";

    echo "<td bgcolor=\"red\"><form style=\"margin-bottom:0;\" action=\"root-delrootuser.php\" method=\"post\" name=\"deluser\" onsubmit=\"return DelUserValidate();\"><input type=\"submit\" value=\"Delete User\"><input type=\"hidden\" name=\"delrootuser\" value=\"$rootusername\"><input type=\"hidden\" name =\"adminuse\" value=\"$adminuse\"></form></td>";
    echo "</tr>";
    }
    echo "</table>";
?>

据我所知,该var clicked=document.forms["deluser"]["delrootuser"].value;部分是导致我的问题的原因。

如果我将此变量定义为静态变量,例如“文本”,那么当我单击用户旁边的删除按钮时,一切正常。系统提示我单击“确定”或“取消”,每个都按预期进行。如果我像上面那样定义它,它会完全绕过该功能,就好像它不存在一样。不过,我希望每个人都能看到他们将要删除的用户名。起初我以为它没有传递 $rootusername 变量,所以我在表单字段中用我当时测试删除的用户名替换它,它仍然绕过了该函数。关于我所缺少的任何想法?

4

2 回答 2

0

即使使用您提供给我的 jquery 东西,我仍然无法让它工作,尽管它可能会在以后用于其他一些事情时派上用场。然而,我终于弄清楚了我的问题。

经过大量阅读并更加熟悉服务器端和客户端后,我了解到在 javascript 函数中引用 PHP 变量似乎不起作用。可能还有其他几种方法,但经过一些实验,我在 onsubmit 中打开 PHP 标记并回显一个 window.confirm,以这种方式引用 PHP 变量。我的最终代码看起来像这样,工作起来就像一个魅力。

<td bgcolor="red"><form style="margin-bottom:0;" action="root-delrootuser.php" method="post" name="deluser" onsubmit="<?php echo "<script>window.confirm('blah, blah blah'" . $variable . "');</script>";?><input type="submit" value="Delete User"><input type="hidden" name="delrootuser" value="$rootusername"><input type="hidden" name ="adminuse" value="<?php echo $adminuse;?>"></form></td>
于 2013-08-26T11:10:42.830 回答
0

出于某种原因,我不断收到一条错误消息,说没有定义 DelUserValidate,所以我使用 jQuery 将函数附加到提交事件。这是一个可以玩的jsFiddle 。

$('#yourFormID').submit(function() {
    var clicked = document.forms.deluser.delrootuser.value;
    return confirm("Are you sure you want to delete this user: " + clicked);
});
于 2013-07-16T22:58:51.497 回答