点击类似按钮ajax不工作

like button on click ajax not working

本文关键字:ajax 工作 按钮      更新时间:2023-09-26

我想在点击jquery时发出ajax请求,但它不起作用:

这就是我所拥有的:

按钮:

$photos_box .= '<a id="' . $imgID . '" class="like_button">' . $like . '</a>';

也许脚本中有一个错误:

// Like function
$('.like_button').click(function() {
    $(this).toggleClass('liked');
    var status = '';
    if ($(this).hasClass('liked')) {
        status = 'like';
        $(this).html('Ya no me gusta');
        console.log('like_works');
    } else {
        status = 'unlike';
        $(this).html('Me gusta');
        console.log('unlike_works');
    }
    var data = {
        img_id : this.id,
        sta    : status
    };
    $.ajax({
        type : 'POST',
        url  : '/includes/like.php',
        data : data
    }).done(function(reslike) {
        if (reslike == 1) console.log('ajax_works');
    });
});

这是一个类似的.php文件:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    sec_session_start();
    // User id
    if (login_check($mysqli) == true) {
        $user_id = $_SESSION['user_id'];
    }
    $img_id = $_POST['img_id'];
    $status = $_POST['sta'];
    $stmt = $mysqli->prepare("SELECT * FROM img_likes WHERE img_id = ? AND user_id = ?");
    $stmt->bind_param("ii", $img_id, $user_id);
    $stmt->execute();
    $result = $stmt->get_result();
    $usr_likes = $result->num_rows;
    if ($status == 'like') {
        if ($usr_likes == 0) {
            $stmt->close();
            $stmt = $mysqli->prepare("INSERT INTO img_likes (img_id, user_id) VALUES(?, ?)");
            $stmt->bind_param("ii", $img_id, $user_id);
            $stmt->execute();
        }
    }
    else if ($status == 'unlike') {
        if ($usr_likes != 0) {
            $stmt->close();
            $stmt = $mysqli->prepare("DELETE FROM img_likes WHERE img_id = ? AND user_id = ?");
            $stmt->bind_param("ii", $img_id, $user_id);
            $stmt->execute();
        }
    }
}

终于!感谢大家。希望我的代码能帮助到别人。

检查ajax请求中的URL,我不确定,但我不认为'/includes/like.php’是一个有效的URL,我认为你实际上必须给它一个有效服务器URL,比如"http://example.com/includes/like.php"