gpt4 book ai didi

php - 通过 AJAX 更新数据库中的变量

转载 作者:行者123 更新时间:2023-11-30 22:03:00 25 4
gpt4 key购买 nike

所以,我一直在练习 PDO,请参阅我的 earlier asked question现在我被困在以下几点:

我想在不按按钮的情况下更新数据库变量,我认为最好通过 AJAX 实现。


一些代码:通用.JS

var timeoutId;
$('form input').on('input propertychange change', function() {
console.log('Invoer bewerking');

clearTimeout(timeoutId);
timeoutId = setTimeout(function() {
// Runs 1 second (1000 ms) after the last change
saveToDB();
}, 1000);
});

function saveToDB()
{
console.log('Opslaan naar Database');
form = $('.formulier24');
$.ajax({
url: "ajax2.php",
type: "POST",
data: form.serialize(), // serializes the form's elements.
beforeSend: function(xhr) {
// Let them know we are saving
$('.HowAbout').html('Opslaan...');
},
success: function(data) { console.error(data) ;
var jqObj = jQuery(data); // You can get data returned from your ajax call here. ex. jqObj.find('.returned-data').html()
// Now show them we saved and when we did
var d = new Date();
$('.HowAbout').html('Opgeslagen om: ' + d.toLocaleTimeString());
},
});
}

// This is just so we don't go anywhere
// and still save if you submit the form
$('.formulier24').submit(function(e) {
saveToDB();
e.preventDefault();
});

ajax.php 文件:

<?php
include('verbinding.php');
if(isset($_POST['formulier24'])) {
$sql = "UPDATE INTO evenement SET username = :username, hours = :hours";
$parameters = array($_POST["username"], $_POST["hours"]);
try {
$stmt = $conn->prepare($sql);
$stmt->bindParam(':username', $_POST['username']);
$stmt->bindParam(':hours', $_POST['hours']);
$result = $stmt->execute($parameters);
$return = "Updated data successfully!";
} catch (PDOException $e) {
$return = "Could not update data! Error: " . $e->getMessage();
}

header("Content-Type: application/json");
echo json_encode($return);
}
?>

连接文件 (verbinding.php) 100% 正常工作。我想我在 ajax.php 文件中犯了一个错误,但我不知道在哪里。请让我知道我做错了什么,因为我没有得到保存在时间日期 -提及并且它没有保存在数据库中。提前致谢!

最佳答案

您的 PHP 代码似乎需要一个表示表单的 POST 变量,但事实并非如此 jQuery serialize产生。它生成一个包含所有(成功的)控件的名称及其值的 POST 字符串,因此 PHP 将为每个控件接收一个 POST 参数。

编辑: 澄清一下,我的意思是您的 isset 检查 $_POST['formulier24'] 将始终返回 false,如果formulier24 是表单的名称。

关于php - 通过 AJAX 更新数据库中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42772490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com