我对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 变量,所以我在表单字段中用我当时测试删除的用户名替换它,它仍然绕过了该函数。关于我所缺少的任何想法?