Ajax脚本不能插入数据库


Ajax script doesn't insert into database

我想让朋友系统和朋友添加与ajax。问题是,当我点击按钮什么也没有发生。不向数据库插入任何内容。这是按钮

<a href="javascript:;" class="newFriend has-tooltip pull-right" data-title="Add as friend" id="'.$id.'"" ><i class="fa fa-user"></i> Add as friends </a>

这是add_friend.php

include 'database.php';
$pdo = Database::connect(); 
if(!empty($_POST["id"])) {
    $friend_id = $_POST['id'];             
    $id = $_SESSION['id'];   
            $value = $pdo->prepare('SELECT * FROM user_friends WHERE friend_id= ? and id = ?'); // BDD query, page ID values
            $value->bindParam(1, $friend_id, PDO::PARAM_INT);
            $value->bindParam(2, $id, PDO::PARAM_INT);              
            $value->execute();
            $result = $value->fetch();    
if( $result > 0) {
        echo 'already added';           
}
else 
{
    $friend_id = $_POST['id'];             
    $id = $_SESSION['id']; 
    $query = $pdo -> prepare("INSERT INTO user_friends (friend_id, id)
                            VALUES (:friend_id, :id)");   
    $query -> execute(array(
                      ":friend_id"         => $friend_id,
                      ":id"          => $id
    ));     
}

<script>    
$(document).ready(function(){
$('.newFriend', $('.buttons')).click(function(){
    $.post('misc/add_friend.php', 
    { 
        "id": $(this).attr('id'),
    },
    function(data){
        if(data == 0){
            $('#message_newfriend').html('<div id="alertFadeOut" style="color: green">Added as friend!</div>');
             $('#alertFadeOut').fadeOut(3000, function () {
                $('#alertFadeOut').text('');
             }); 
        }
        else {
             $('#message_newfriend').html('<div id="alertFadeOut" style="color: green">User is already in your friend list!</div>');
             $('#alertFadeOut').fadeOut(3000, function () {
                $('#alertFadeOut').text('');
             }); 
        }
     });
});
});
</script>

表是简单的user_friends -白色行- friend_id (int 4)id (int 4)

你知道是什么问题吗?

这一行不对

$('.newFriend', $('.buttons')).click(function(){
               ^            ^// wrong method

改为

$('.newFriend, .buttons').click(function(){

首先选择一个浏览器来测试ajax调用。不管是Google Chrome还是Firefox,都可以使用Firebug插件。我的首选是Firefox。以下是我在Firefox中按F12调试Firebug的方法:firebug打开,然后单击Net选项卡,然后单击XHR,在那里您将看到浏览器和服务器之间传递的数据。您必须确定问题是在客户端脚本上还是在服务器端脚本上。每次你发出请求,在XHR下都会显示一个新的url,点击url字符串开头的加号,你可以看到Header,Post,Response, JSON, Cache和cookie标签,这些都是在浏览器和服务器之间来回传递的东西。

Post选项卡显示浏览器发送的数据,Response选项卡显示服务器随后发送的数据。如果服务器端有错误,由php脚本生成,您将在这里看到它。