Javascript 如何将参数从JS函数传递到PHP代码

Javascript 如何将参数从JS函数传递到PHP代码,javascript,php,database,variables,arguments,Javascript,Php,Database,Variables,Arguments,我想将js函数参数“checklistNoteId”和“checklistNoteStatus”传递给PHP变量,这样我就可以更改数据库中的内容。我应该编写什么代码来传递这些参数?我试过了,但没用。我的问题的一个例子如下: 编辑:我试过了,但没用 JS代码: checklistFinishedBtn.onclick = function(e){ let noteId = Number(e.target.parentNode.getAttribute('checklist-id'));

我想将js函数参数“checklistNoteId”和“checklistNoteStatus”传递给PHP变量,这样我就可以更改数据库中的内容。我应该编写什么代码来传递这些参数?我试过了,但没用。我的问题的一个例子如下:

编辑:我试过了,但没用

JS代码:

checklistFinishedBtn.onclick = function(e){
     let noteId = Number(e.target.parentNode.getAttribute('checklist-id'));
     if (checklistArray.checklistItems[noteId].isDone){
         changeChecklistNoteStatus(checklistArray.checklistItems[noteId].id, 0);
     } else {
         changeChecklistNoteStatus(checklistArray.checklistItems[noteId].id, 1);
     }
     }
PHP代码:

<head>
<script>
    function changeChecklistNoteStatus(checklistNoteId, checklistNoteStatus){
        console.log(checklistNoteId);       //this returns 26 (which is correct)
        console.log(checklistNoteStatus);   //this returns 1 (which is correct)
        <?php
        //if I set these values manually, it works
        $status = "<script>document.write(checklistNoteStatus)</script>"; 
        $id = "<script>document.write(checklistNoteId)</script>";
        $sql = 'UPDATE checklist_notes SET isDone = :isDone WHERE id = :id';
        $statement = $pdo->prepare($sql);
        $statement->execute(['isDone' => $status,'id' => $id]);
        ?>
    }
</script>
</head>

函数更改checklistNoteStatus(checklistNoteId、checklistNoteStatus){
console.log(checklistNoteId);//返回26(正确)
console.log(checklistNoteStatus);//返回1(正确)
}
在此之后,数据库保持不变。(我正在尝试设置id为26的便笺,以便在单击按钮时更改isDone变量。) 数据库中的屏幕如下所示:
了解客户端代码和服务器端代码之间的区别很重要。PHP是服务器端,这意味着它将在发送到客户端之前在服务器上运行。Javascript是客户端,这意味着它将在客户端收到代码时运行。因此,javascript永远无法直接向PHP写入任何内容,因为在客户端接收网页之前,PHP脚本就已经运行了

为了将客户端的内容发送回服务器,您需要发送一个请求。最常见的方法是使用
表单
元素,其中包含
方法=POST
和指向要接收的php文件的
操作。下面是一个简单的例子:


如果您希望它在后台运行,我建议您查找AJAX请求以及如何执行这些请求。这是一个相同的概念,但还有一点不同。

PHP代码和JavaScript代码不能一起工作。当JavaScript代码运行时,PHP代码已经运行。了解页面生命周期。您需要对后端进行表单提交或获取调用。这很有帮助,那么,我应该使用AJAX请求来解决我的问题吗?或者我应该以完全不同的方式更新数据库数据吗?AJAX请求应该适合您的需要,所以从这开始。