Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么';我的ajax调用是否在数据库中存储数据?没有PHP或控制台错误_Javascript_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Javascript 为什么';我的ajax调用是否在数据库中存储数据?没有PHP或控制台错误

Javascript 为什么';我的ajax调用是否在数据库中存储数据?没有PHP或控制台错误,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我正在尝试建立一个评级系统,你可以从1-5颗星,然后显示平均评级 为此,im使用Ajax、jQuery、PHP、MySQL和HTMLOFC 以下是脚本和基本html的基本代码: <?php include('includes/config.php'); $post_id = '1'; ?> <div class="ratesite"> <h4>Betygssätt denna webbplats!</h4>

我正在尝试建立一个评级系统,你可以从1-5颗星,然后显示平均评级

为此,im使用Ajax、jQuery、PHP、MySQL和HTMLOFC

以下是脚本和基本html的基本代码:

<?php 
    include('includes/config.php');
    $post_id = '1';
?>
<div class="ratesite">
    <h4>Betygssätt denna webbplats!</h4>
        <div class="rate-ex1-cnt">
            <div id="1" class="rate-btn-1 rate-btn"></div>
            <div id="2" class="rate-btn-2 rate-btn"></div>
            <div id="3" class="rate-btn-3 rate-btn"></div>
            <div id="4" class="rate-btn-4 rate-btn"></div>
            <div id="5" class="rate-btn-5 rate-btn"></div>
        </div>
<?php require_once 'includes/avgrate.php'; ?>
        <div id="avg-rate">
            <h5>Snittvärdet är <strong><?php echo $rate_value; ?></strong>.</h5>
        </div>
</div>
<!-- Script för rating -->
    <script>
        $(function(){ 
            $('.rate-btn').hover(function(){
                $('.rate-btn').removeClass('rate-btn-hover');
                var therate = $(this).attr('id');
                for (var i = therate; i >= 0; i--) {
                    $('.rate-btn-'+i).addClass('rate-btn-hover');
                };
            });

            $('.rate-btn').click(function(){    
                var therate = $(this).attr('id');
                var dataRate = 'act=rate&post_id=<?php echo $post_id; ?>&rate='+therate; //
                $('.rate-btn').removeClass('rate-btn-active');
                for (var i = therate; i >= 0; i--) {
                    $('.rate-btn-'+i).addClass('rate-btn-active');
                };
                $.ajax({
                    type : "POST",
                    url : "includes/ajax.php",
                    data: dataRate,
                    success:function(){}
                });

            });
        });
    </script>

贝蒂格斯德·丹尼娜·韦伯普拉斯!
Snittvärdetär。
$(函数(){
$('.rate btn').hover(函数(){
$('rate btn').removeClass('rate-btn-hover');
var therate=$(this.attr('id');
对于(var i=therate;i>=0;i--){
$('.rate btn-'+i).addClass('rate-btn-hover');
};
});
$('.rate btn')。单击(函数(){
var therate=$(this.attr('id');
var dataRate='act=rate&post_id=&rate='+therate//
$('rate btn').removeClass('rate-btn-active');
对于(var i=therate;i>=0;i--){
$('.rate btn-'+i).addClass('rate-btn-active');
};
$.ajax({
类型:“POST”,
url:“includes/ajax.php”,
数据:数据速率,
成功:函数(){}
});
});
});
从我使用“console.log”搜索脚本中的错误可以看出,脚本工作正常,因此我认为错误在我的ajax.php中:(我得到0个php错误,控制台中没有错误)


来自php.net

mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] );
您没有为您的
mysqli\u查询提供$link

<?php
require_once 'config.php';
    if($_POST['act'] == 'rate'){
        //Kontrollera ifall användaren (IP) redan röstat.
        $ip = $_SERVER["REMOTE_ADDR"];
        $therate = $_POST['rate'];
        $thepost = $_POST['post_id'];
现在。。。您的$conn在下面的mysqli_fetch_assoc中的哪里

    while($data = mysqli_fetch_assoc($result)){
        $rate_db[] = $data;
    }
为什么下面的mysqli_查询没有一个$conn,而您以前有

    if(@count($rate_db) == 0 ){
        mysqli_query("INSERT INTO ratings (id_post, ip, rate)VALUES('$thepost', '$ip', '$therate')");
    }else{
        mysqli_query("UPDATE ratings SET rate= '$therate' WHERE ip = '$ip'");
    }
} 
?>

最后,您的console.log将仅显示来自客户端/浏览器的错误。您的服务器上应该有一个php.log文件,其中包含有关误用mysqli_查询的错误-如果您不知道这些错误在哪里,那么在实践中,当您接近目标时,您只会给自己带来额外的工作和头痛


祝你好运

您的更新和插入查询似乎缺少连接变量。一般格式为mysqli_query($connection,$query);看起来您缺少$connection。这是我对你的问题的快速猜测。了解的语句。您假设您的查询正常工作。您需要执行一些错误检查。@NicholasByfleet我正在包括dbconnection,其中$conn是连接,所以这不可能是问题啊,我已经有一段时间没有编写自己的查询了(这些天我几乎完全使用ORM),但我很确定您需要将$conn添加到每个mysqli_query()调用中。现有代码仅指定第一个查询中的连接。或者我错过了什么?
<?php
require_once 'config.php';
    if($_POST['act'] == 'rate'){
        //Kontrollera ifall användaren (IP) redan röstat.
        $ip = $_SERVER["REMOTE_ADDR"];
        $therate = $_POST['rate'];
        $thepost = $_POST['post_id'];
    $sql = "SELECT * FROM ratings where ip= '$ip'";
    $result = mysqli_query($conn, $sql); 
    while($data = mysqli_fetch_assoc($result)){
        $rate_db[] = $data;
    }
    if(@count($rate_db) == 0 ){
        mysqli_query("INSERT INTO ratings (id_post, ip, rate)VALUES('$thepost', '$ip', '$therate')");
    }else{
        mysqli_query("UPDATE ratings SET rate= '$therate' WHERE ip = '$ip'");
    }
}