javascript - 如何使用 php 将我的星级评分值发送到 mysql 数据库

标签 javascript php html mysql

我使用 HTML 和 JS 在我的网站中开发了一个星级评级系统。它运行良好,但是当我尝试将该值发送到我的数据库时,它总是发送 0。由于我是 PHP 新手,所以我很难理解哪里出了问题。有时这可能是一个愚蠢的问题:/请有人帮助我!

这是我的 HTML 代码:

<div class="form-group" id="rating-ability-wrapper">
    <label class="control-label" for="rating">
        <h2 align="center">Rate Our Service</h2>
        <span class="field-label-info"></span>
        <input type="hidden" id="selected_rating"   name="selected_rating" value="" required="required">
    </label>
    <h2 class="bold rating-header" style="text-align: center;">
        <span name="rate" value="rate" class="selected-rating">0</span><small> / 5</small>
    </h2>
    <div style="text-align: center;">
        <button type="button" class="btnrating btn-default btn-lg" data-attr="1" id="rating-star-1" name="rating-star1" value="1">
            <i class="fa fa-star" aria-hidden="true"></i>
        </button>
        <button type="button" class="btnrating btn-default btn-lg" data-attr="2" id="rating-star-2" name="rating-star2" value="2">
            <i class="fa fa-star" aria-hidden="true"></i>
        </button>
        <button type="button" class="btnrating btn-default btn-lg" data-attr="3" id="rating-star-3" name="rating-star3" value="3">
            <i class="fa fa-star" aria-hidden="true"></i>
        </button>
        <button type="button" class="btnrating btn-default btn-lg" data-attr="4" id="rating-star-4" name="rating-star4" value="4">
            <i class="fa fa-star" aria-hidden="true"></i>
        </button>
        <button type="button" class="btnrating btn-default btn-lg" data-attr="5" id="rating-star-5" name="rating-star5" value="5">
            <i class="fa fa-star" aria-hidden="true"></i>
        </button>
    </div>              
</div><br><br><br><br><br>

JS 代码:

jQuery(document).ready(function($){

$(".btnrating").on('click',(function(e) {

var previous_value = $("#selected_rating").val();

var selected_value = $(this).attr("data-attr");
$("#selected_rating").val(selected_value);

$(".selected-rating").empty();
$(".selected-rating").html(selected_value);

for (i = 1; i <= selected_value; ++i) {
$("#rating-star-"+i).toggleClass('btn-warning');
$("#rating-star-"+i).toggleClass('btn-default');
}

for (ix = 1; ix <= previous_value; ++ix) {
$("#rating-star-"+ix).toggleClass('btn-warning');
$("#rating-star-"+ix).toggleClass('btn-default');
}

}));

});

PHP 代码:

<?php
require_once('dbh.inc_2.php');

$rate = '0';
if (isset($_POST['rating-star1'])) {
    $rate = '1';
} 
if (isset($_POST['rating-star2'])) {
    $rate = '2';
} 
if (isset($_POST['rating-star3'])) {
    $rate = '3';
} 
if (isset($_POST['rating-star4'])) {
    $rate = '4';
} 
if (isset($_POST['rating-star5'])) {
    $rate = '5';
} 

if (isset($_POST['button_post'])) {

    $feedback=addslashes($_POST["feedback"]);
    $f_author=$_POST["fAuthor"];
    $f_date=$_POST["fDate"];
    $rate_star = $rate;

    if (empty($feedback)) {
        $m = "Please enter your feedback";
        header("location:../post_feedback.php?msg=$m");
        exit();
    }
    else {
        $sql ="INSERT INTO feedbacks(feedback_body, feedback_author, feedback_date, rating)VALUES('$feedback','$f_author','$f_date', '$rate_star')";

        if (mysqli_query($conn, $sql)) 
        {
            $m= "Feedback Sent";
        } 
        else
        {
            $m= "Error: " . $sql . "<br>" . mysqli_error($conn);
        }
    }
}

header("location:../post_feedback.php?msg=$m");

最佳答案

将按钮的值发送到隐藏输入中,然后提交表单。这将在这段代码中起作用。 谢谢

关于javascript - 如何使用 php 将我的星级评分值发送到 mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54730717/

相关文章:

javascript - 格式错误的 HTML : How to NOT show a bullet on an empty li element

javascript - 如何使用 javascript 制作的登录弹出窗口登录网站?

asp.net - 背景颜色不添加

php - 仅允许 HTML 净化器中类属性中的特定类

PHP htmlentities 和 htmlspecialchars 破坏了我的字符串

javascript - 拒绝从 '' 执行脚本,因为它的 MIME 类型

javascript - 在 jquery html() 上保留制表符(缩进)

javascript - 带有匿名/箭头函数回调的赋值速记

php - 从具有关系的数据库中检索数据

php - curl PHP : How can I fetch all content of a web page and display it the way a browser does?