jQuery,PHP:从jQuery调用PHP脚本,但它似乎没有执行

我正在使用此站点上的源代码:
http://webtint.net/tutorials/5-star-rating-system-in-php-mysql-and-jquery/comment-page-1/#comment-2562

一个很棒的资源,我想你们都会同意,但我的问题是我的Javascript似乎并没有真正执行PHP脚本……

当我在Chrome的调试器中为倒数第二行(之前)添加断点时; ):

$("[id^=rating_]").children("[class^=star_]").click(function() {

        var current_star = $(this).attr("class").split("_")[1];
        var rid = $(this).parent().attr("id").split("_")[1];

        $('#rating_'+rid).load('http://localhost:8888/fivestars/send.php', {rating: current_star, id: rid});


    });

正如您所期望的那样,它会在断点处成功停止.但是我只是无法让send.php实际做任何事情,它根本就不会!正如您从代码中看到的,我使用了绝对URL,但它不适用于相对URL或仅在该位置使用send.php.我已经在send.php中放置了代码,将“成功”写入数据库,这样我就可以测试它是否正在执行 – 但显然不是.

有没有人有任何想法?

谢谢!

插口

编辑:刚刚尝试使用此代码代替我以前使用的代码:

$('#rating_'+rid).load('send.php', function () {alert('Load was performed.');});

对话框显示正确,所以我确信它正在工作.

作为参考,send.php的PHP代码是:

<?php

$rating = (int)$_POST['rating'];
$id = (int)$_POST['id'];

$this->db->query("INSERT INTO code (rating) VALUE (8)");
$query = $this->db->query("SELECT * FROM code WHERE id = '".$id."'");

while($query->row()) {

    if($rating > 5 || $rating < 1) {
        echo"Rating can't be below 1 or more than 5";
    }

    elseif(isset($_COOKIE['rated'.$id])) {
        echo"<div class='highlight'>You've already voted, sorry!</div>";
    }
    else {
        setcookie("rated".$id, $id, time()+60*60*24*365);

//      $total_ratings = $row['total_ratings'];
        $total_ratings = $query->row('total_ratings');
        $total_rating = $query->row('total_rating');
        $current_rating = $query->row('rating');

        $new_total_rating = $total_rating + $rating;
        $new_total_ratings = $total_ratings + 1;
        $new_rating = $new_total_rating / $new_total_ratings;
        // Lets run the queries. 

        $this->db->query("UPDATE test SET total_rating = '".$new_total_rating."' WHERE id = '".$id."'");
        $this->db->query("UPDATE test SET rating = '".$new_rating."' WHERE id = '".$id."'");
        $this->db->query("UPDATE test SET total_ratings = '".$new_total_ratings."' WHERE id = '".$id."'");

        echo"<div class='highlight'>Thanks for your vote!</div>";

    }
}

?>

对不起,这有点乱,但我一直在将默认的PHP代码迁移到我的CodeIgniter库.

最佳答案 要检查的第一件事是来自Web服务器的访问和错误日​​志,以查看请求是否实际到达Web服务器.

点赞