我正在使用php jquery和ajax构建一个评论系统。我已经为“此评论有用吗?”编写了以下代码。按钮:
<input type='button' value='Yes' onClick = 'myCall()'
style='background-color:#556B2F;color:white;padding:2px; cursor:pointer'
name='help' />
<input type='hidden' id='randomdirectory' value='$g' name='ids'/>
$ g是我分配给评论ID的变量,它存储在数据库中。 ajax脚本是这样的:
<script>
function myCall() {
var ids = $('#randomdirectory').val();
var self = this;
$.ajax({
url: 'rev.php',
type: 'POST',
data: {ids: ids},
success: function(data) {
$('#ques1').hide();
}
});
}
并且“rev.php”文件中的代码是:
<?php
include 'includes/db.php';
$q = $_POST['ids'];
if ($q != ""){
$result = mysql_query("SELECT * FROM table where id='$q'");
while($row = mysql_fetch_array($result))
{
$finalproduct = $row['numberofhelpfulvotes'];
$finalproduct1 = $finalproduct + 1;
}
mysql_query("UPDATE table SET numberofhelpfulvotes='$finalproduct1' WHERE id ='$q'");
}
?>
问题是当我在页面上有多个评论时。当您点击任何评论中的任何“是”按钮时,显示的第一个评论会添加投票,而不是单击按钮的实际评论。此外,当在ajax调用之后隐藏按钮和文本时,将隐藏第一个查看按钮和文本,而不是单击按钮的查看。此外,页面底部还会出现黑线。
非常感谢任何解决这些问题的方法。
答案 0 :(得分:0)
感谢所有回复。我最终这样做对我来说很有效:
<script>
$(function() {
$(".button").click(function() {
var ids = (this.id);
$.ajax({
url: 'rev.php',
type: 'POST',
data: {ids: ids},
success: function(data) {
$('.' + ids).hide();
}
});
});
});
</script>
这是html:
<div class='$g'><font size='2' color='black'>Was this review helpful?</font> <input type='submit' value='Yes' onClick = 'myCall()' style='background-color:#556B2F;color:white;padding:2px; cursor:pointer' name='help' id='$g' class='button' /><input type='hidden' id='randomdirectory' value='$g' name='ids'/>
php保持不变,但我要更新它以使其更安全。