Ajax / jQuery“喜欢”按钮

时间:2013-04-11 17:02:46

标签: javascript jquery ajax sql-like

我是JavaScript的新手,我一直在尝试基本的jQuery和ajax函数,现在我想在我的网站上为个人资料创建一个“赞”或“代表”按钮,我写了一个漂亮的基本代码,但它不起作用,因为当我点击按钮时似乎没有发布任何内容。

这是我的JavaScript(我的页面上嵌入了最新的jQuery):

<script>
    $(function(){
        $(".rep").on("click", function(){
            $.ajax({
                type: "POST",
                url: "add.php",
                data: ({ profile: $(".rep").attr('id') }),
                success: function(data) {
                    if(data.status == 'success') {
                        $('.rep').html('N');
                    } else {
                        $('.rep').html('N');
                    }
                }
            })
        });
    });
</script>

现在我的HTML元素:

<div class="rep" id="Username">O</div>

最后是我的PHP脚本:

<?php
    include ("config.php");
    $to = $_POST["profile"];
    $from = $myUser;
    $ip = $_SERVER["REMOTE_ADDR"];
    $date = date("M j, Y");

    if($to !== "" && $from !==""){
        $q = mysql_query("SELECT * FROM rep WHERE to='$to' AND from='$from' AND date = '$date'");
        $n = mysql_num_rows($q);

        if($n == 0){
            $query = mysql_query("INSERT INTO rep (to, from, ip, date) VALUES ('$to', '$from', '$ip', '$date')");
            if($query){
                $data['status'] = 'success';
            } else {
                $data['status'] = 'error';
            }
        } else if($n !== 0){
            $data['status'] = 'error';
        }
    }
?>

真的无法理解这一点,所以如果有人能指出我正确的方向,同时解释错误,那就太好了!

4 个答案:

答案 0 :(得分:1)

jQuery live()从版本1.9开始从jQuery中删除。

http://api.jquery.com/live/

尝试点击()或开启('点击')

编辑(这不是问题)

php文件需要返回一个json编码的字符串,如下所示:

{name: 'bob', success: true, some_property: 'a string'}

依此类推,以获取返回数据中所需的所有值。

我通常这样做:

$data['success'] = true; // not needed for jquery but if you want to check it
$data['name'] = 'bob';

echo json_encode($data);
exit;

看看是否有效。

答案 1 :(得分:0)

使用此格式

$(document).on("click", ".rep", function () {

var id = $(this).attr('id');
    var s = {
        "profile": d
    };


    $.ajax({

        url: "add.php",
        type: "POST",
        data: s,
        success: function (data) {
          // but what you want  

        },

    });


    return false;
});

答案 2 :(得分:0)

首先,将.html('n')更改为.text('n');

添加到你的ajax功能

error: function (error) {
                  console.log(error); //or alert(error);
              }

您将收到回复

答案 3 :(得分:0)

你需要在php文件中回显结果,以便javascript在数据参数中收到正确的结果