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