我有那部分隐藏了 img 的 I-6ren">
gpt4 book ai didi

php - 单击 HTML img 标签并使用 PDO 通过 jQuery/AJAX 更新 MySQL

转载 作者:行者123 更新时间:2023-11-29 19:45:12 25 4
gpt4 key购买 nike

我有这个 HTML:

<a href="#"  ><div class="menu"><img src="<?php echo $value->capa; ?>" class="img-rounded" id="item" alt="Cinque Terre" alt="Lights"></a></div>

我有那部分隐藏了 img 的 ID:

<input type="hidden" id="idLivro" name="idLivro" value="<?=$value->id?>">

这个脚本:

$(document).ready(function(){
$(".menu").click(function(){
var idLivro = document.getElementById("idLivro");
$.ajax({
url: 'updateBadge.php?id='+idLivro,
method: 'GET'
})
});
});

updateBadge.php:

require_once 'classes/Crud.php';

$banco = new Usuarios();

$idLivro = $_GET['idLivro'];

$banco->updateBadge($idLivro);

我想做的是,当有人点击旁边有徽章的链接(img)时,数据库中相应的列就会增加 1。

但是,我拥有更新方法的部分位于类内部:

public function updateBadge($id){
$sql = "UPDATE $this->table SET badge = (badge+1) WHERE id = :id";
$stmt = DB::prepare($sql);
$stmt->bindParam(':id', $id);
return $stmt->execute();
}

如何使用 AJAX 调用此函数来更新徽章计数器?

已编辑:我已使用下面的注释更改了代码。仍然无法工作

最佳答案

您需要一个脚本(例如,在 AJAX 请求中调用它时的 Users.php 。在此 Users.php 中,您必须实例化您的类并调用 updateBadge - 具有相应参数的方法,这些参数也必须在您的 AJAX 请求中发送。

如果您只是想增加徽章列,请编写以下查询(那么只有一个绑定(bind)参数就可以了):

$sql = "UPDATE $this->table SET badge = (badge+1) WHERE id = :id";

要获取 AJAX 请求的 ID,您需要 HTML 中的某个位置的 ID,通过 jQuery 获取它并将其传递到您的 URL,如

$.ajax({ 
url: 'classes/Users.php?id='+theJsVariableYouStoredTheIdIn,
method: 'GET'
})

然后您可以通过$_GET['id']Users.php中访问它

关于php - 单击 HTML img 标签并使用 PDO 通过 jQuery/AJAX 更新 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41063609/

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