数据并没有插入到数据库中,但使用PHP和Ajax检索工作正常吗?

数据并没有插入到数据库中,但使用PHP和Ajax检索工作正常吗?,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,在我问你我的问题之前,我想澄清一下,我只是Ajax和Jquery的新手,所以如果怀疑很小或是小菜一碟,请原谅我 我正在尝试使用Ajax和PHP为我的电子商务创建审查系统。问题是,数据没有插入到数据库中,但是如果我手动将数据插入数据库中,它会在我的网站上完美地显示出来。我认为变量审阅或用户审阅出了问题,但找不到它是什么。因此,请您告诉我我在哪里犯了错误 <div role="tabpanel" class="tab-pane" id="reviews"> <h4>W

在我问你我的问题之前,我想澄清一下,我只是Ajax和Jquery的新手,所以如果怀疑很小或是小菜一碟,请原谅我

我正在尝试使用Ajax和PHP为我的电子商务创建审查系统。问题是,数据没有插入到数据库中,但是如果我手动将数据插入数据库中,它会在我的网站上完美地显示出来。我认为变量审阅或用户审阅出了问题,但找不到它是什么。因此,请您告诉我我在哪里犯了错误

<div role="tabpanel" class="tab-pane" id="reviews">
    <h4>Write your Review</h4>
    <form action="" method="post" onsubmit="return post();">
        <textarea id="review" class="reviewbox" placeholder="Write Your Review Here....."></textarea>
        <button type="submit" class="btn">Submit</button>
    </form>
    <div id="all_reviews">
        <?php
                            $query = $pdo->prepare("SELECT * FROM reviews WHERE product_id=?");
                            $query -> bindValue(1, $id);
                            $query->execute();
                            while ($row = $query->fetch(PDO::FETCH_ASSOC))
                            {
                                $name = $row['user_name'];
                                $text = $row['review_text'];
                                $time = $row['post_time'];
                        ?>
            <h5>By <?php echo $name; ?></h5>
            <p><i>posted on <?php echo $time; ?></i></p>
            <p>
                <?php echo $text; ?>
            </p>
            <hr>
            <?php
                            }
                        ?>
    </div>
    <script type="text/javascript" src="jquery.js">
    < script type = "text/javascript" >
        function post() {
            var review = document.getElementById("review").value;
            if (review) {
                $.ajax({
                    type: 'POST',
                    url: 'post_reviews.php',
                    data: {
                        user_review: review
                    },
                    success: function(response) {
                        document.getElementById("all_reviews").innerHTML = response + document.getElementById("all_reviews").innerHTML;
                        document.getElementById("review").value = "";
                    }
                });
            }
            return false;
        }
    </script>
</div>

您的脚本代码未关闭时出错

 <script type="text/javascript" src="jquery.js">



这就是您的ajax不工作的原因。

首先检查您的ajax是否工作,然后单击按钮var review=document.getElementById(“review”).value


现在我明白了。您正在提交表格

 <form action="" method="post" onsubmit="return post();">
        <textarea id="review" class="reviewbox" placeholder="Write Your Review 
         Here....."></textarea>
        <button type="submit" class="btn">Submit</button>
</form>

提交
尝试用以下内容替换您的表单:

 <form action="" method="post">
  <textarea id="review" class="reviewbox" placeholder="Write Your Review 
             Here....."></textarea>
  <button type="button" onclick="post()" class="btn">Submit</button>
</form>

提交

如果按钮类型为“按钮”,则不会提交表单。现在单击它将调用您的函数并执行ajax调用

您的ajax代码是否正常工作请在控制台中检查。?您可以共享您的表结构吗?另外…我认为您的$_GET['id']未设置,这就是插入不起作用的原因。尝试在ajax数据中传递id,并使用$\u POST,方法与查看时使用的方法相同。只需在文件中使用“打印/写入”来调试代码,打印插入查询,然后手动运行即可。@Vladut否,如果是这种情况,它将显示错误,并尝试将id行设为空默认值,但仍然相同。我的桌子结构是这样的
rid(Primary)int(11)AI
产品id int(20)
用户名文本
查看文本文本
发布时间
@ggupta您指的是类似于此打印的东西($review);如果是的话,我试过了,但没有显示任何结果。不,它仍然不起作用。控制台也是空的,这意味着没有错误。
$.ajax({
    type: "POST",
    url: "post_reviews.php",
    data: review,
    cache: false,
    dataType: 'json',
    success: function(response){
        document.getElementById("all_reviews").innerHTML = response + document.getElementById("all_reviews").innerHTML;
        document.getElementById("review").value = "";
    }


});

return false; 
 <form action="" method="post" onsubmit="return post();">
        <textarea id="review" class="reviewbox" placeholder="Write Your Review 
         Here....."></textarea>
        <button type="submit" class="btn">Submit</button>
</form>
 <form action="" method="post">
  <textarea id="review" class="reviewbox" placeholder="Write Your Review 
             Here....."></textarea>
  <button type="button" onclick="post()" class="btn">Submit</button>
</form>