【发布时间】:2019-07-19 21:45:43
【问题描述】:
我擅长 php 和 html,但是我还在学习 js。而且我坚持创建一个表单,该表单将提交表单数据以插入 mysql 而不加载页面(ajax)。
下面是我的表格:
<form id="panel1" action="rep-submit.php" method="post">
<div class="form-group">
<input type="text" name="rep_author" id="rep_author" placeholder="Your Name" class="form-control">
</div>
<div class="form-group">
<input type="email" name="rep_email" id="rep_email" placeholder="Your Email" class="form-control">
</div>
<div class="form-group">
<textarea class="form-control" id="rep_comment" name ="rep_comment"rows="3" placeholder="Your comment"></textarea>
</div>
<input type="hidden" value="<?php echo $comment_id; ?>" id ="rep_to">
<input type="hidden" value="<?php echo $postp_id; ?>" id ="rep_post_id">
<input id="repsub" type="button" class="btn btn-primary" value="Submit">
</form>
下面是我的post.js 我拿了很多在线指南来制作这样的js代码:P,花了1天时间完成仍然无法工作。请帮忙
$(document).ready(function(){
$("#repsub").on('click', function(event) {
event.preventDefault();
$("#repsub").attr("disabled", "disabled");
var rep_author = $('#rep_author').val();
var rep_email = $('#rep_email').val();
var rep_comment = $('#rep_comment').val();
var rep_to = $('#rep_to').val();
var rep_post_id = $('#rep_post_id').val();
var url = $("#panel1").attr("action");
alert(url);
$.ajax({
url: url,
type: "POST",
data: {
rep_author: rep_author,
rep_email: rep_email,
rep_comment: rep_comment,
rep_to: rep_to,
rep_post_id: rep_post_id
},
cache: false,
success: function(dataResult){
var dataResult = JSON.parse(dataResult);
document.write(rep_comment);
if(dataResult.statusCode==200){
console.log("success");
$("#repsub").removeAttr("disabled");
$('#panel1').find('input:text').val('');
alert("success");
}
else if(dataResult.statusCode==201){
alert("Error occured !");
}
}
});
});
});
最后是rep-submit.php
<?php include_once("includes/connection.php");
if(isset($_POST['rep_submit']))
{
global $connection;
connection();
$author = $_POST['rep_author'];
$email = $_POST['rep_email'];
$comment = $_POST['rep_comment'];
$rep_to = $_POST['rep_to'];
$post_id = $_POST['rep_post_id'];
$com_rep = "yes,".$rep_to;
$query = "INSERT INTO comment(comment_post_id,comment_author,comment_email,comment_content,comment_reply) ";
$query .= "VALUES('$post_id','$author','$email','$comment','$com_rep')";
$result = mysqli_query($connection, $query);
if(!$result)
{
echo "There is some issue posting your reply on that comment<br>";
echo mysqli_error($connection);
echo json_encode(array("statusCode"=>201));
}
else
{
echo "reply sucessfully sent for approval";
$query = "SELECT * FROM comment WHERE comment_id = '$rep_to'";
$result = mysqli_query($connection, $query);
$row = mysqli_fetch_assoc($result);
$com_count = $row['comment_reply_count'];
$new_count = $com_count + 1;
$query = "UPDATE comment SET ";
$query .= "comment_reply_count = '$new_count' ";
$query .= "WHERE comment_id = '$rep_to'";
$result = mysqli_query($connection, $query);
echo json_encode(array("statusCode"=>200));
}
}
?>
【问题讨论】:
-
哪个特定部分导致问题?怎么了?
-
我怀疑没有调用 javascript 函数请尝试
-
非常感谢您的协助回复,所以表单正在显示,当我单击提交按钮时,它的 css 属性更改为禁用,如 js 中定义但不执行 rep-submit.php 中编写的内容,我相信成功:部分不适用于 ajax js。对于 sql 注入,这只是学习文件(本地主机),很快就会添加转义真实字符串。我添加了 **#**repsub 但它不起作用:(
-
我很好奇 AJAX 是否正在触发并且 PHP 文件是否正在被调用。
alert()会火吗?success会火吗?您是否在浏览器控制台中看到请求的 PHP 文件?是否有任何相关的错误? -
当我点击提交时,我看到表单字段已提交但没有响应。该警报(网址)效果很好。在成功部分,我添加了 Document.write 来测试它是否有效,但它没有工作
标签: javascript php jquery mysql ajax