php - jQuery, PHP : Calling a PHP script from jQuery, 但它似乎没有执行

标签 php javascript jquery mysql

我使用的是在此站点上找到的源代码: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 中放置了将“成功”写入数据库的代码,这样我就可以测试它是否正在执行 - 但显然没有。

有没有人有什么想法?

谢谢!

jack

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

$('#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 服务器。

关于php - jQuery, PHP : Calling a PHP script from jQuery, 但它似乎没有执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2349162/

相关文章:

jquery - 使用 jQuery 文本字段选择全部/放置光标

javascript - 在 TypeScript 模块中使用 jQuery 扩展 AngularJS

php - Laravel 循环收集成小块

php - 在 SQL pdo 查询中使用变量作为表名

javascript - 我如何使用 jQuery 访问一个级别上的输入值,然后是其兄弟级

javascript - 在数组中查找子数组

javascript - 如何检查属性的文本是否包含部分参数标题(不区分大小写)?

php - 银条 3 : Can I set a custom error page in silverstripe for certain page types?

php - 使用 PHP 和 SQL 在 highstock 烛台图表中未显示 JSON 数据

javascript - 将包含 4 个元素的不同类名收集到 JSON 字符串中