javascript - 使用 PHP 创建一个简单的投票系统

标签 javascript php mysql

我正在用 PHP 做一个相当原始的投票系统。

MySQL PHP

while($row = mysql_fetch_array($query)): ?>
<div class="item" data-postid="<?php echo $row['id'] ?>" data-score="<?php echo $row['vote'] ?>">
  <div class="vote-span"><!-- voting-->

//
    <div class="vote" data-id="<?php echo $row['id']?>" data-action="up" title="Vote up">
//

      <img src="//placekitten.com/10/10"/>
    </div><!--vote up-->
    <div class="vote-score"><?php echo $row['vote'] ?></div>

//       
    <div class="vote" data-id="<?php echo $row['id']?>" data-action="down" title="Vote down">
//        

      <img src="//placekitten.com/g/10/10"/>
    </div><!--vote down-->
  </div>

  <div class="post"><!-- post data -->
    <h2><?php echo $row['name']?></h2>
    <p><?php echo $row['title'] ?></p>
  </div>
</div><!--item-->
<?php endwhile?>

我主要关注 // 之间的文本。首先,我设置了两个数据属性,希望以后在 javascript 中使用它们;我将 data-action 设置为 updown 以判断它是赞成票还是反对票。我还将 data-id 属性设置为我的 MySQL 表中的当前行 ID 键。

根据我的逻辑,我可以通过 javascript jquery 并在单击时执行 PHP 代码,并从 MySQL 中的正确行中添加/减去数字。

我或多或少地尝试了 Javascript 作为过期:

$('.vote').click(function(){
    if ($(this).data('action')=='up'){
        //PHP code here
    }
});

不用说,那是行不通的,因为 PHP 和 Javascript 不能那样玩,因为 PHP 是服务器端的。接下来,我想我可以在我的 Javascript 条件中调用 PHP 函数 - 但似乎必须有一种更简单的方法来完成我正在尝试的事情。我一直在查看大量教程,它们要么已过时,要么特定于其他项目。我查了一下,发现 this question ,但它旨在允许 IP 具有投票限制。 This question看起来和我正在做的很相似,除了我无法真正弄清楚他们是如何设置的,因为他们不知道如何调用该函数

TL;DR 我的问题是在单击 div 时调用 PHP 函数,该函数会将数据放入 MySQL 行的正确 ID 中。 AJAX 似乎是可行的方法,但我不确定如何实现它。

最佳答案

您可以创建一个 AJAX 调用:

$('.vote').click(function () {
        $.ajax({
            type: "POST",
            url: "your-script.php",
            data: {
                id: $(this).data('id'),
                vote: $(this).data('action')
            }
        })
            .done(function (msg) {
            alert("Data Saved: " + msg);
        });
});

现在您可以通过 $_POST['id']$_POST['action'] 获取脚本中的值。

如果您想在 PHP 中创建它,您必须在向上和向下按钮周围放置一个表单,并为提交按钮提供所需的文本/图像。

祝你好运!

关于javascript - 使用 PHP 创建一个简单的投票系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21998070/

相关文章:

Javascript 添加时间

javascript - typeahead.js 远程不返回任何内容

php - 使用 Mandrill API 发送邮件时被拒绝

php - 填充空提交结果 mysql php

mysql - Django - 向 MySQL 数据库添加行

javascript - 在字符串的同一部分排除正则表达式

javascript - 如何获得固定平均值的可能结果?

javascript - 如何使用 beforeClose 回调取消打开弹出窗口? #放大弹出窗口

php - 解析嵌套的 JSON 以检索嵌套的数组值

python - 使用 python 将数据从 MySQL 迁移到 SAP HANA