Php 如何仅刷新用户从中单击的div
我想刷新用户单击的div,其中div的id基于从数据库获取的数据的id 让我们说 如果用户单击了id为#topic-4的div,则只有在成功执行ajax操作后才应刷新该div。但是我的问题是我不知道如何处理div的动态生成的id 我相信问题出在我的ajax代码中Php 如何仅刷新用户从中单击的div,php,jquery,ajax,Php,Jquery,Ajax,我想刷新用户单击的div,其中div的id基于从数据库获取的数据的id 让我们说 如果用户单击了id为#topic-4的div,则只有在成功执行ajax操作后才应刷新该div。但是我的问题是我不知道如何处理div的动态生成的id 我相信问题出在我的ajax代码中 $('#topic-4').load(location.href + ' #topic-4'); 需要记住的一点是,idtopic-4…是从数据库动态获取的。我还希望将ajax代码保持在重复区域之外 我的ajax代码 $(functi
$('#topic-4').load(location.href + ' #topic-4');
需要记住的一点是,idtopic-4…是从数据库动态获取的。我还希望将ajax代码保持在重复区域之外
我的ajax代码
$(function() {
$(document).on("click", ".first", function(e) {
e.preventDefault();
var uid = $(this).data('id');
$.get('vote.php?id=' + uid, function(html){
$('#topic-4').load(location.href + ' #topic-4');
});
});
});
主题从数据库中提取,并在do while php中重复,如图所示:
<?php do { ?>
<div class="first" id="topic-<?php $row_topics['id']; ?>">
<a href="#" data-id="<?php echo $row_topics['id']; ?>" class="btn"> click </a>
</div>
<?php } while ($row_topics = mysqli_fetch_assoc($query_topics)); ?>
您的问题是您再次获得了所有的div
,正如您在PHP(不完整)代码中向我们展示的那样
编写所有处理GET
的PHP代码,这样我们可以为您提供更多帮助。主要问题在于SQL语法,因为您可以在那里进行筛选。尝试以下方法:
$.get('vote.php?id=' + uid, function(html) {
$.get(location.href + '?' + (new Date()).getTime(), function(response) {
var newTopic = $(response).find('#topic-' + uid);
$('#topic-' + uid).html(newTopic.html());
});
});
location.href+'?'+(new Date()).getTime()
确保它在没有任何缓存的情况下重新加载页面
然后,通过$(response)
构建一个新的jQuery对象,并在其中搜索所需的主题
然后,为当前主题指定新值
它应该在php
代码中没有任何更改的情况下工作
为了使它更简单,您必须更改vote.php
,这样它将只返回一个新的向上投票的主题html,而不是您可以执行的操作:
$.get('vote.php?id=' + uid, function(response) {
$('#topic-' + uid).html(response);
});
你能重新解释一下实际的问题是什么吗?他的问题是他点击了div id 4,他得到了该div中的所有div,而不仅仅是div 4信息,所以他没有刷新div id 4,他得到了div id中的所有div4@JoseManuelAbarcaRodr我甚至不知道为什么。你有更好的计划吗idea@Jeff我已经从…添加了一些内容。让我们感谢您的努力。newTopic.html()
?@krushiovida,newTopic.html()
在响应中返回
的innerHTML
。我的新更新更能正确解决这种情况。现在我明白了。我会试试看。@krushiovida,记住,你的投票。php
必须只返回被投票主题的innerHTML
,而不是main,我仍在试图操纵你的想法。当我像这样使用它时,它就工作了('#topic-'+uid).load('#topic-'+uid)但是另一个问题出现了。div首先复制,然后刷新div,然后变为正常。新的问题是div的重复。我的问题不完全是php代码。问题在于令人耳目一新。即使代码返回负或正结果,div仍应刷新
$.get('vote.php?id=' + uid, function(response) {
$('#topic-' + uid).html(response);
});