我有这个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调用此函数来更新徽章计数器?
已编辑:我已使用以下评论更改了代码。仍然没有工作
答案 0 :(得分:0)
您需要一个脚本(例如Users.php
,因为您在AJAX请求中调用它。在此Users.php
中,您必须实例化您的类并使用相应的参数调用updateBadge
- 方法,也必须在你的AJAX请求中发送。
如果你只想增加徽章列写下面的查询(那么只有一个绑定参数可以):
$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'
})
然后,您可以Users.php
通过$_GET['id']
while y < x:
data_list[y].title = title
data_list[y].link = link
data_list[y].description = description
story_list.update({title: {'link' : link, 'description' : description}})
y += 1
答案 1 :(得分:0)
页面updateBadge.php
$(document).ready(function(){
$(".menu").click(function(){
var idLivro = document.getElementById("idLivro");
var badge= $('#vidLivro').val();
$.ajax({
url: 'updateBadge.php?id='+idLivro,
method: 'GET'
})
.done(function(data,text,jqxhr){
if(jqxhr.responssetext=='updated'){
$('#vidLivro').val(badge+1);
}
})
});
});
你的剧本:
select l.sid, trunc(l.id1 / power(2, 16)) rbs,
bitand(l.id1, to_number('ffff', 'xxxx')) + 0 slot,
l.id2, l.lmode, l.request, l.ctime, l.block,
substr(v.osuser, 1, 12) osuser,
substr(v.machine, 1, 15) machine,
substr(v.module, 1, 12) module,
decode(v.blocking_session_status||l.block, 'VALID0',
dbms_rowid.rowid_create(1, v.row_wait_obj#, v.row_wait_file#,
v.row_wait_block#, v.row_wait_row#), '.') lrow,
o.object_name,
decode(v.sql_id, null, v.prev_sql_id, v.sql_id) sql_id,
o.owner
from v$lock l, v$session v, all_objects o
where l.sid = v.sid
and v.row_wait_obj# = o.object_id(+)
and l.ctime > 5 and l.type = 'TX' and (l.request = 6 or l.block = 1)
order by 2, 3, 4, 8 desc, 7 desc;