0

我对 JavaScript 很陌生,我一直在尝试基本的 jQuery 和 ajax 函数,现在我正在尝试在我的网站上为个人资料创建一个“Like”或“Rep”按钮,我已经编写了一个非常基本的代码,但是它不起作用,因为当我单击按钮时它似乎没有发布任何内容。

这是我的 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

4 回答 4

1

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

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

尝试 click() 或 on('click')

编辑(那不是问题)

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;

看看这是否有效。

于 2013-04-11T17:06:54.820 回答
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;
});
于 2013-04-11T17:16:26.207 回答
0

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

添加到您的 ajax 函数

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

你会收到回复

于 2013-04-11T17:18:17.673 回答
0

您需要在 php 文件中回显结果,以便 javascript 在 data 参数中接收正确的结果

于 2013-04-11T17:23:24.647 回答