Javascript AJAX.done()未按预期工作
我不知道问题出在哪里,但我发现,如果我将此行Javascript AJAX.done()未按预期工作,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我不知道问题出在哪里,但我发现,如果我将此行data:form_data更改为data:form_data它不返回Ajax,但PHP函数可以工作 默认的ajax,带有一行:data:form_data-->会中断页面,php函数将无法工作 在该行之后添加“;”数据:表单_数据-->不显示任何内容,但PHP函数工作并在数据库中插入“reply” 调用PHP函数和显示警报对话框应如下所示: 答复表格: <!-- REPLY MODAL --> <div class="moda
data:form_data
更改为data:form_data代码>它不返回Ajax,但PHP函数可以工作
默认的ajax,带有一行:data:form_data
-->会中断页面,php函数将无法工作
在该行之后添加“;”数据:表单_数据代码>-->不显示任何内容,但PHP函数工作并在数据库中插入“reply”
调用PHP函数和显示警报对话框应如下所示:
答复表格:
<!-- REPLY MODAL -->
<div class="modal fade reply_comment_<?php echo $comment['id'];?>" id="reply_comment_<?php echo $comment['id'];?>" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<b><center><div class="modal-header">Reply Comment</div></center></b>
<form id="replyForm_<?php echo $comment['id'];?>" class="horiziontal-form" action="../Pages/fun_post.php?action=replyCommentForm" method="post">
<center><textarea name="reply" style="width:80%; height:200px; margin-top:20px; margin-bottom:20px; resize:vertical;" placeholder="Write your comment!"></textarea></center>
<input type="hidden" name="addedby" class="form-control col-md-7 col-xs-12" value="<?php echo $myRow['id']; ?>" />
<input type="hidden" name="comment_id" class="form-control col-md-7 col-xs-12" value="<?php echo $comment['id']; ?>" />
<input type="hidden" name="post_id" class="form-control col-md-7 col-xs-12" value="<?php echo $comment['post_id']; ?>" />
<input type="submit" style="float:right; margin-right:90px;" class="btn btn-primary" name="submit" value="Reply" />
</form>
</div>
</div>
</div>
<!-- END OF REPLY MODAL -->
您似乎对表单提交事件处理程序使用了错误的选择器。您正在使用:
$("#reply_comment_<?php echo $comment['id'];?>").submit(function(event){
// ...
});
在该行数据之后添加“;”:form_data;-->没有显示任何内容
,这是因为如果添加分号,则会出现语法错误
在data:form_data
之后,您只会收到一个错误,因此表单在没有ajax的情况下提交,因此它不起作用。@JaykumarGondaliya这在逻辑上与OP现在的情况相同。您能在DevTools的网络
选项卡中看到请求吗?换句话说,ajax请求本身是否被调用?您是否按照@MoshFeu的建议检查了控制台中的错误?谢谢。正如我所想。。我自己的编码有错误。简单的错误,但找不到。@Crelix没问题:)
<!-- REPORT MODAL -->
<div class="modal fade report_post_<?php echo $post['id'];?>" id="report_post_<?php echo $post['id'];?>" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<b><center><div class="modal-header">Report Post</div></center></b>
<form id="reportForm_<?php echo $post['id'];?>" class="horiziontal-form" action="../Pages/fun.php?action=reportPostForm" method="post">
<center><textarea name="report" style="width:80%; height:200px; margin-top:20px; resize:vertical;" placeholder="Please describe your Report!"></textarea></center>
<input type="hidden" name="addedby" class="form-control col-md-7 col-xs-12" value="<?php echo $myRow['id']; ?>" />
<input type="hidden" name="image_id" class="form-control col-md-7 col-xs-12" value="<?php echo $post['id']; ?>" />
<div class="modal-footer"><input type="submit" class="btn btn-danger" name="submit" value="Report" /></div>
</div>
</div>
</form>
</div>
<!-- END OF REPORT MODAL -->
<script>
$(function(){
$("#reportForm_<?php echo $post['id'];?>").submit(function(event){
event.preventDefault(); //prevent default action
var post_url = $(this).attr("action"); //get form action url
var request_method = $(this).attr("method"); //get form GET/POST method
var form_data = $(this).serialize(); //Encode form elements for submission
$.ajax({
url : post_url,
type: request_method,
data : form_data
}).done(function(response){ //
$('#report_post_<?php echo $post['id'];?>').modal('hide');
document.getElementById('result-box').innerHTML += response;
});
});
});
</script>
$("#reply_comment_<?php echo $comment['id'];?>").submit(function(event){
// ...
});
$("#replyForm_<?php echo $comment['id'];?>").submit(function(event){
// ...
});