我有一个div
,它显示包含“喜欢”和“不喜欢”按钮的锚标签的文章。我想在某些点击喜欢或不喜欢的情况下更新div
,而无需刷新整个页面。这是div
:
#Print out article and display information
echo "<article style='border: 2px solid #10466C;' class='topContent'>
<header>
<a class='article_title' href='article.php?article=$id'><h3>$title</h3></a>
</header>
<p class='date-author'>Date: $date <br /> Author: <span style='color: #10466C;'>$author </span> | Catagory: <a href='#'>$catagory</a> | Writer Level: $level<br />
Comments: ($cmt_total) </p>
<content>
<img class='article-image' src='$image' />
<div style = 'float: left; margin-left: 3%; width: 45%;'>
<div class='like_box'>
<a href='vote.php?vote=like&title=$title'><img src='img/like.png' class='vote'></a><p class='vote_text'>$like_num</p>
<p style='color: #fff;'>$like_username</p>
</div>
<div class='dislike_box'>
<a href='vote.php?vote=dislike&title=$title'><img src='img/dislike.png' class='vote'></a><p class='vote_text'>$dislike_num</p>
<p style='color: #EC2800;'>$dislike_username</p>
</div>
</div>
<div style='display: inline-block; margin-top: 10px;'>
$text<a href='article.php?article=$title'><b>read more</b></a>
</div>
</content>
<br />
<br />
</article> ";
}
如果您查看名为“like_box”和“dislike_box”的div
,您可以在PHP脚本中喜欢的锚标记内看到。
我的问题是如何运行该脚本而不必刷新页面并使用标头标签重定向。我们非常感谢您提供任何帮助,我愿意提供您可能需要的任何额外信息。我已经尝试了很多方法,我知道它需要AJAX或JavaScript,这对我来说无关紧要。
感谢。
答案 0 :(得分:2)
更严重的是,回应;
如果有人可能会写出一些伪代码或者会显示如何执行此操作的内容?
问题(很高兴能够进一步提供帮助,但我认为这可能会帮助您指出正确的方向):
您需要设置一个触发点击的触发器;
<div class='dislike_box'>
<a data-dislike="<?php echo $id; ?>">
...
</a>
</div>
然后用js接受;
document.querySelectorAll('a[data-dislike]').onclick = function() {
// make an ajax call to your like/dislike script
// and on success change the DOM somehow
};
然后在您的(可能是PHP)脚本中,当您进行// make an ajax call to your like/dislike script
&#34;调用&#34;您需要接收变量(通过ajax调用发送并在您的脚本中选择,例如data-like
/ data-dislike
attr或类似内容中的内容)
然后,当您从ajax调用中获取这些变量并在PHP脚本中获取它们时,您可以执行数据库更新并返回一些内容(可能是JSON),告诉客户端脚本&#34;如何&#34;根据您从ajax调用收到的内容更新DOM。
如果这根本没有意义,请告诉我。