[英]javascript: getting incorrect variable being set when passed as an argument
[英]Incorrect argument being passed to javascript
我正在為我的家人建立一個簡單的網站來跟蹤他們擁有的拼圖游戲。 一個功能是能夠刪除他們不再擁有的謎題。 我打算將行 ID 作為參數傳遞給單獨的文件,但我認為我應該在中間放置一個 javascript 確認彈出窗口。 我似乎一切都運行得幾乎正確,但是傳遞的參數不正確,我不知道為什么。 它傳遞的是表中最后一行的 ID,而不是當前行 ID。 希望有人能指出我正確的方向。
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>";
}
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.