$('.publishNotif').-6ren">
gpt4 book ai didi

php - 为什么我无法使用 post 请求使用 jquery 更新数据库中的数据?

转载 作者:行者123 更新时间:2023-11-29 09:51:21 26 4
gpt4 key购买 nike

我正在尝试使用 Jquery 将一些数据更新到我的数据库中,但没有任何反应。

<form action="" method="POST" class="container form-control text-center">

ID : <input type="text" name="id_user" id="id_user" value="<?= $userInfo['id_user']; ?>" class="form-control" disabled></input><br>
<input type="text" id="notification" name="notification" class="form-control" placeholder="Écrivez une notification..."></input><br>


<input type="submit" class="publishNotif" value="publish">

<script type="text/javascript">


$('.publishNotif').click(function(){

var notification = $("#notification").val();

$.post("publishNotifRequest.php", {
notification: notification,
id_user: id_user
});

});

在名为“publishNotifRequest.php”的文件中:

if(isset($_POST['notification']) AND !empty($_POST['notification']) AND isset($_POST['id_user']) AND !empty($_POST['id_user'])){

$insertNotif = $bdd->prepare('UPDATE USERS SET notification = :notification WHERE id_user = :id_user');

$insertNotif->execute(array(
"notification" => trim(htmlspecialchars($_POST['notification'])), // trim supprime les espaces debut et fin de chaine
"id_user"
));

}

最佳答案

好的,根据其他评论和我自己的观察:

在 JS 中

$('.publishNotif').click(function(e){
e.preventDefault(); // --- add this
var notification = $("#notification").val();

$.post("publishNotifRequest.php", {
notification: notification,
id_user: id_user
});
});

在 PHP 中

if(isset($_POST['notification']) AND !empty($_POST['notification']) AND isset($_POST['id_user']) AND !empty($_POST['id_user'])){

$insertNotif = $bdd->prepare('UPDATE USERS SET notification = :notification WHERE id_user = :id_user');

$insertNotif->execute(array(
"notification" => trim(htmlspecialchars($_POST['notification'])),
"id_user" => $_POST['id_user'] // --- add this
));

}

另请注意评论,其中显示了我所做的更改。我看到的你遇到的最大问题是:

$insertNotif->execute(array(
"notification" => trim(htmlspecialchars($_POST['notification'])), // trim supprime les espaces debut et fin de chaine
"id_user" //<<----- no value for this "key"
));

因为其中只有 "id_user",PHP 会将其设为字符串文字(数组中的元素),而不是数组的键。然后,因为这是您更新数据库所需的 ID,所以它无法找到要更新的行,因为其中没有 “id_user” 的 ID。当然,这是假设 PDO(看起来像这样)允许您这样做,但它不会这样做,因为键与查询中的占位符不正确匹配。

如果您查看请求的返回或错误日志,您可能会看到类似 PDOException - 提供的参数数量错误PDOStatement::execute().

正如 @Taplar 在评论中提到的,在你的 JS 中你需要防止提交按钮的默认行为。我们可以使用 e.preventDefault() 来做到这一点,假设我们为 e 变量或 event 设置了一个参数(但我懒得这样做)输入该内容)。

希望它对你有用......

关于php - 为什么我无法使用 post 请求使用 jquery 更新数据库中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54738804/

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