Javascript 为什么';我的ajax调用是否在数据库中存储数据?没有PHP或控制台错误
我正在尝试建立一个评级系统,你可以从1-5颗星,然后显示平均评级 为此,im使用Ajax、jQuery、PHP、MySQL和HTMLOFC 以下是脚本和基本html的基本代码: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>
<?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'");
}
}