簡體   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