php - 如何使用 Jquery Ajax 更新 PHP 变量?

标签 php jquery mysql ajax

我正在创建一个简单的选民,可以投“喜欢”票或“不喜欢”票。然后,我统计喜欢和不喜欢的总数并输出总数。我想出了如何使用 Jquery Ajax 进行投票,但是投票后票数没有更新。我想使用 Jquery Ajax 更新 $numlike$numdislike 变量。

这是与输出相关的 PHP 脚本:

$like = mysql_query("SELECT * FROM voter WHERE likes = 1 ");
$numlike = 0;
while($row = mysql_fetch_assoc($like)){ 
    $numlike++;
}

$dislike = mysql_query("SELECT * FROM voter WHERE likes = 0 ");
$numdislike = 0;
while($row = mysql_fetch_assoc($dislike)){  
    $numdislike++;
}

echo "$numlike like";
echo "<br>";
echo "$numdislike dislike";

更新: Jquery Ajax 用于上传投票

<script>
$(document).ready(function(){
    $("#voter").submit(function() {

    var like     = $('#like').attr('value');
   var dislike   = $('#dislike').attr('value');

        $.ajax({
            type: "POST",
            url: "vote.php",
            data: "like=" + like +"& dislike="+ dislike,   
            success: submitFinished
            });

            function submitFinished( response ) {
  response = $.trim( response );

  if ( response == "success" ) {
        jAlert("Thanks for voting!", "Thank you!");
        }

    return false;
    });
});
</script>

<form id="voter" method="post">
<input type='image' name='like' id='like' value='like' src='like.png'/>
<input type='image' name='dislike' id='dislike' value='dislike' src='dislike.png'/>
</form>

投票.php:

if ($_POST['like'])
{
    $likeqry  = "INSERT INTO test VALUES('','1')";
    mysql_query($likeqry) or die(mysql_error());
    echo "success";
}

if ($_POST['dislike'])
{
    $dislikeqry  = "INSERT INTO test VALUES('','0')";
    mysql_query($dislikeqry) or die(mysql_error());
    echo "success";
}

最佳答案

如果您想在单击后更改当前喜欢或不喜欢的号码,您必须返回结果而不是打印它!返回 json 结果并回显此结果并更改 div insideHTML 以查看新结果!

............
............
............
$dislike = mysql_query("SELECT * FROM voter WHERE likes = 0 ");
$numdislike = 0;
while($row = mysql_fetch_assoc($dislike)){  
    $numdislike++;
}

echo json_encode( array( $numlike, $numdislike ) ) ;
exit();

现在在您的 html 代码中:

       $.ajax({
            type: "POST",
            url: "vote.php",
            context:$(this)
            data: "like=" + like +"& dislike="+ dislike,   
            success: submitFinished(data)
            });

            function submitFinished( response ) {
  response = $.parseJSON( response );
  //Now change number of like and dilike but i don't know where are shown in your html
  $('#like').attr('value',response[0]);
  $('#dislike').attr('value',response[1]);
  return false;
    });

关于php - 如何使用 Jquery Ajax 更新 PHP 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6633842/

相关文章:

php - 如何使用 GROUP BY 和 ORDER BY 关键字从表中获取数据?

mysql 在导入数据库转储时挂起

javascript - 使用 jquery 和 Jquery tablesorter 插件将多行数据附加到表中

php - 如何将带有CSS的模板包含到网站上的所有页面

php - MongoDB - 存储和读取数据的最佳方式

密码的 javascript 正则表达式至少包含 8 个字符、1 个数字、1 个大写字母和 1 个小写字母

javascript - 让这些箭头滚动? jquery 和 html

javascript - Jquery draggable 在我的代码中不起作用

php - INSERT IGNORE INTO - 但原因是哪一列?

php - Mysql错误: Duplicate entry '1-5' for key 'PRIMARY' on insert unsure of how