javascript - JavaScript、Php、AJAX、MySql 网站上的“赞成”按钮无法正常工作。我究竟做错了什么?

标签 javascript php mysql ajax

我正在尝试在从 MySql 数据库获取的文章列表上创建赞成/反对按钮。这些按钮的工作原理是,您按下按钮,它就会获取文章的 ID。但是我无法从文章页面到 php 投票页面获取 id。当我按下按钮时,数据库不会登记投票。我究竟做错了什么?

    <script type="text/javascript">
    $(function() {

    $(".vote").click(function() 
    {


    var id = $(this).attr("id");
    var name = $(this).attr("name");
    var dataString = 'id='+ id ;
    var parent = $(this);


    if(name=='up')
    {
      alert('you upvoted on '+ dataString);

    $(this).fadeIn(200);
    $.ajax({
       type: "POST",
       url: "weblectureupvote.php",
       data: dataString,
       cache: false,

       });

    }
    else
    {
    alert('you downvoted on '+ dataString);
    $(this).fadeIn(200);
    $.ajax({
       type: "POST",
       url: "weblectureupvote.php",
       data: dataString,
       cache: false,

     });
   }
    return false;
      });

    });
    </script>

这是 php 文件:

<?php

$pid = $_POST['id'];

try {



$db = new PDO('mysql:host=' . $config['db']['host'] . ';dbname=' . $config['db']['dbname'], $config['db']['username'], $config['db']['password']);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


$result=mysql_query("SELECT * FROM database WHERE pid = '$pid' ") or die(mysql_error());

while ($row = mysql_fetch_array($result)) {
        // temp user array
        $lecturelist = array();
        $lecturelist["pid"] = $row["pid"];
        $lecturelist["upvote"] = $row["upvote"];
        $lecturelist["downvote"] = $row["downvote"];
        $lecturelist["vote"] = $row["vote"];

      }



$upvote= $row["upvote"];
$downvote = $row["downvote"];
$vote = $row["vote"];
$upvote = $upvote + 1;


$query = $db->prepare('UPDATE database SET upvote = :upvote WHERE pid = :pid');
$query->execute(array(  
  ':upvote'  => $upvote,
  ':pid'    => $pid
)); 
$query = $db->prepare('UPDATE database SET vote=:vote  WHERE pid = :pid');
$query->execute(array(  
  ':vote'  => $vote,
  ':pid'    => $pid
)); 


} catch(PDOException $e) {
  echo $e->getMessage();
}
?>

最佳答案

data: {id: id}

这将获取您的 php 文件一个“id”变量(这是第一个 id)和一些值(来自第二个 id)

现在

$pid = $_POST['id'];

这应该有效,因为您没有向服务器发送“太多”内容

关于javascript - JavaScript、Php、AJAX、MySql 网站上的“赞成”按钮无法正常工作。我究竟做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23095617/

相关文章:

javascript - 使用 jQuery 迭代从 Web 服务接收到的 JSON

php - MySQL 先按零件编号对日期进行排序

javascript - 使用 javascript/jquery 循环 json 对象

javascript - 如何在 JS 中检索以特定索引结尾的整个单词?

javascript - 使用显示/隐藏单选按钮将数组打印到 Div

php - CodeIgniter DataMapper 慢吗?

php - 如何设置 phpmyadmin 以便与 enterprisedb apache 一起运行?

mysql - 无法在查询中提取 JSON 路径

mysql - 限制 SQL 结果

java - 'ps=con.prepareStatement();' 行中未报告的 SQL 异常