Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用post()更新数据库_Php_Jquery_Ajax - Fatal编程技术网

Php 使用post()更新数据库

Php 使用post()更新数据库,php,jquery,ajax,Php,Jquery,Ajax,我正在制作一个日历,管理员可以在其中更改日单元格的背景颜色。更改将保存到服务器。现在,它不起作用了。下面是JavaScript的一部分: for(i=0; i<myDays.length; i++) { // Goes through each TD and creates a click event myDays[i].addEventListener("click", function(){ if(this.classList.contains("avail")) {

我正在制作一个日历,管理员可以在其中更改日单元格的背景颜色。更改将保存到服务器。现在,它不起作用了。下面是JavaScript的一部分:

for(i=0; i<myDays.length; i++) { // Goes through each TD and creates a click event
myDays[i].addEventListener("click", function(){
    if(this.classList.contains("avail")) {
        this.classList.toggle("avail");
        this.classList.toggle("halfy");
        $.post("classChange.php", { dID: this.id, dClass: "halfy" } );
    }

单击单元格可以正确更改单元格的类别和颜色,但不会更新数据库。我没有收到任何错误。我认为这一定是post代码或PHP代码的问题。有什么建议吗

在使用变量之前,需要先定义变量

$dID = $_POST["dID"];
$dClass = $_POST["dClass"];
$stmt = $db->prepare("UPDATE original SET class=? WHERE id=?");
$stmt->bind_param("ss", $dClass, $dID);

在使用变量之后定义它们不会是一种成功的做法。如果Catalin Minovici充分解决了您的问题,请奖励他绿色勾号,否则请编辑您的问题,以澄清仍然存在的问题。感谢您的回复。我试过你的方法,但没用。出于各种原因,我使用$db来代替通常的$conn。我使用的是MySQLi,而不是PDO。ss只是表示接下来的两个变量是字符串。我以前用过这种方法;可以在W3School上找到:我已经收到了我所做的其他代码的PHP错误,但是我如何检查呢?我在JS代码中添加了一个console.log,点击即可生成正确的信息。如果可以的话,请帮忙!在使用变量之前定义它们无疑是对代码的一种更改。添加打印机:%s。\n,$stmt->错误;在执行之后。您有任何mysql错误吗?我做了建议的更改,并将其添加到PHP中:echo json_encodearrayresID=>$dID,resClass=>$dClass;。然后,我将输出添加到JS代码:$.postclassChange.php,{dID:this.id,dClass:halfy},functiondata{console.logdata.resID;console.logdata.resClass;},json;。现在我的代码工作了。不确定哪一位解决了问题,但谢谢!
$dID = $_POST["dID"];
$dClass = $_POST["dClass"];
$stmt = $db->prepare("UPDATE original SET class=? WHERE id=?");
$stmt->bind_param("ss", $dClass, $dID);