像点击ajax上的按钮不起作用

时间:2014-11-10 23:34:58

标签: javascript php jquery ajax

我想在点击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');
    });
});

这是like.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();
        }
    }
}

最后!谢谢大家。希望我的代码可以帮助别人。

1 个答案:

答案 0 :(得分:0)

检查ajax请求中的网址,我不确定,但我不认为&#39; ../ includes / like.php&#39;是一个有效的网址,我认为您实际上必须为其提供有效的服务器网址,例如&#34; http://example.com/includes/like.php&#34;