【发布时间】:2016-05-17 19:15:27
【问题描述】:
所以我有这个 jquery 代码包(注意其中一些可能非常错误但可以工作)并且有一些地方我想调用函数但我很难做到。代码是:
$(document).ready(function(){
$("#myTablePager").html("");
$.ajax({
type: "POST",
url: "fetchTable.php",
data: { ticketType: $("#selectType option:selected").val()}
}).done(function( msg ) {
$("#troubleTable").html(msg);
$('#myTable').pageMe({pagerSelector:'#myTablePager',showPrevNext:true,hidePageNumbers:false,perPage:10});
});
});
$(function (){
$("#selectType").change(function (){
$("#myTablePager").html("");
$.ajax({
type: "POST",
url: "fetchTable.php",
data: { ticketType: $("#selectType option:selected").val()}
}).done(function( msg ) {
$("#troubleTable").html(msg);
$('#myTable').pageMe({pagerSelector:'#myTablePager',showPrevNext:true,hidePageNumbers:false,perPage:10});
});
});
});
$(document).on('click', '.viewTD', function(){
var tid = $(this).closest('tr').find('.tidTD input').val();
$.ajax({
type: 'post',
url: 'modalInfo.php',
data: 'tid=' +tid,
success: function(d){
$('.modal-body').html(d);
$('.modal-title').html("Ticket ID: " + tid);
$('#myModal').modal('show');
var time = $('#time').val();
var desc = $('#description').val();
$('#Resolved').click(function(){ //Here #1
$.ajax({type: 'post',url: 'resolveTicket.php',data: 'tid=' +tid, success: function(s){
$('#resolvedTicket').html("Resolved");
}});
});
$("#addComment").click(function(){
$.ajax({type: 'post', data: { myData: $('#commentAdd').serialize() }, url: "addComment.php", success: function(info){
$.ajax({
type: 'post',
url: 'modalInfo.php',
data: 'tid=' +tid,
success: function(d){
$('.modal-body').html(d);
$('.modal-title').html("Ticket ID: " + tid);
$('#myModal').modal('show');
}});
}});
});
}
});
});
我想要做的是调用上面的 jquery 以在其中一个 ajax 调用中从成功函数重新运行。我试图理解的一个例子是,我将注释 Here 1 放在其中我正在运行一些 Ajax 命令以更改数据库中的一行以通过 ajax 将新信息传递给它,当该 ajax 调用返回为成功我想做的是重新运行嵌套在 $(document).ready() 函数中的第一个 ajax 调用,以便在加载文档时生成的第一个表使用固定信息重新生成。
关于同一主题的另一个问题是在 ajax 调用下面我有我的模态 ajax,它嵌套在 $(document).on('click', '.viewTD'... 中,我遇到的问题是,当我打开模态并在该模态中填写表单时(这种形式是由第一次打开模式时调用的 ajax 生成的,$("#myModal").modal('show')... 区域是特定的)但是这样做之后,ajax 调用永远不会运行,除非我将 ajax 嵌套在开始的模式 jquery 区域中与$(document).on('click', '.viewTD'...。这样做的问题是,要返回固定表,我必须粘贴到同一个 jquery 中,该 jquery 在打开模式时首次运行该表单的 ajax 调用成功。这部分正在“工作”,尽管在我看来这是一个非常糟糕的解决方案,因为我无法在不关闭并重新打开模式的情况下添加第二条评论。我想我可以解决这个问题,如果我能回忆起之前的一点 jquery 而不必粘贴我在上面试图做的事情。任何想法我怎么能做到这一点。
我能写的最清楚的是如何告诉 jquery 在 ajax 调用的成功块中重新运行。
抱歉第一次解释不清楚。
【问题讨论】:
-
我敢肯定这里一定有问题。
-
请更具体地说明您的问题是什么,因为它目前非常广泛且不清楚。使用最小、完整和可验证的示例包含更少的代码。请阅读this.
-
抱歉,我试图清理并删除了一些代码(离开了 JS),因为我觉得它可能不需要。
标签: javascript php jquery ajax twitter-bootstrap