繁体   English   中英

传递给 javascript 的参数不正确

[英]Incorrect argument being passed to javascript

我正在为我的家人建立一个简单的网站来跟踪他们拥有的拼图游戏。 一个功能是能够删除他们不再拥有的谜题。 我打算将行 ID 作为参数传递给单独的文件,但我认为我应该在中间放置一个 javascript 确认弹出窗口。 我似乎一切都运行得几乎正确,但是传递的参数不正确,我不知道为什么。 它传递的是表中最后一行的 ID,而不是当前行 ID。 希望有人能指出我正确的方向。

PHP 代码

while ($row = $result->fetch_assoc()) {
  echo "<script>var puzzleID = " . $row['id'] . "</script>";
  echo "<td><a href='puzzleedit.php?=" . $row['id'] . "'>Edit</a> | <button onclick='confirmationBox()'>Delete</button></td>";
}

JS 代码在一个单独的文件中

function confirmationBox() {
    if (confirm("Are you sure you want to delete this puzzle?")) {
        window.location = './puzzledelete.php?=' + puzzleID
    } else {
    }
}

有趣的是,在编辑链接中使用$row['id']可以按预期工作,它从数据库中获取正确的行 ID。 脚本中的$row['id']正在获取表的最后一行 ID。

您的循环不断重新分配puzzleId 当您调用confirmationBox()时,它将具有分配的最后一个值,而不是在每个<td>之前分配的值。

不要使用全局变量,而是使用 function 参数。

while ($row = $result->fetch_assoc()) {
  echo "<td><a href='puzzleedit.php?=" . $row['id'] . "'>Edit</a> | <button onclick='confirmationBox(" . $row['id'] . ")'>Delete</button></td>";
}
function confirmationBox(puzzleID) {
    if (confirm("Are you sure you want to delete this puzzle?")) {
        window.location = './puzzledelete.php?=' + puzzleID
    } else {
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM