0

我正在用 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 调用后隐藏按钮和文本时,隐藏第一个评论按钮和文本,而不是单击按钮的评论。页面底部还会出现一条黑线。

对这些问题的任何解决方案将不胜感激。

4

1 回答 1

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>&nbsp;<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 保持不变,但我将对其进行更新以使其更安全。

于 2013-04-10T18:08:21.623 回答