2015-10-05 32 views
-2

我有一个应用程序通过ajax输出一个表,该表的每一行都有一个列/输入字段的日程安排日期。一旦进入日程安排日期,该行内的更新按钮被点击,我的第二个Ajax调用被触发。Ajax调用有时会失败并且有时有效?

问题我在选择日期时点击更新按钮,有时系统正常工作,有时它不会。请参阅我的代码 - 我希望有人能够说明一些情况。

首先AJAX调用:

$('.datepicker').datepicker({ 
       todayHighlight:'TRUE', 
       autoclose: true, 
      }) 

    $.post('assets/ajax/calldata/newords.php', function(data) { 
     $('#newords').html(data) 
     $('.datepicker').datepicker({ 
       todayHighlight:'TRUE', 
       autoclose: true, 
      }) 
    }); 

从输出第一Ajax调用

<table> 

    <thead> 
    <tr> 
    <td>#<td> 
    <td>Account</td> 
    <td>Date to Scedule</td> 
    <td>Action</td> 
    <tr> 
    </thead> 

    <tbody> 
    <tr> 
     <td>1</td> 
     <td>Test Account</td> 
     <td> 
      <input class="datepicker form-control" type="text" id="datetoprint" name="datepicker" data-date-format="dd/mm/yyyy" placeholder="dd/mm/yyyy"> 
     </td> 
     <td> 
      <button class="btn btn-default markScheduled" type="button" id="markScheduled" ordid="56">Scheduled</button> 
     </td> 
    </tr> 
    </tbody> 
</table> 

二Ajax调用一下行更新后:

$(document).on('click', 'button.markScheduled', function(e) { 

     var ordid = $(this).attr('ordid'); 
     var scheduledate = $('input.scheduleDate').val(); 

     $.ajax({ 
      url: "assets/ajax/order.php", 
      type: "POST", 
      data: {ordid: ordid,date: scheduledate}, 
      success: function(result){ 

      }, 
      error: function(exception){ 
       alert('Exception:' +exception); 
      } 
     }); 

     $.post('assets/ajax/calldata/newords.php', function(data) { 
      $('#newords').html(data) 
      $('.datepicker').datepicker({ 
       todayHighlight:'TRUE', 
       autoclose: true, 
      }) 
     }); 

    }); 

我没有得到任何错误,这个系统刷新更新数据库有时会从输入的值,有时不是..有时你必须手动刷新页面的条目不再在屏幕上..

+0

而当它失败时,你有没有y错误?但它听起来像你应该只调用第二次ajax请求** **第一次完成/成功后 –

+0

在控制台中看到它失败时....请尝试将$ .post放入$ .ajax成功中,然后看看。 –

+0

我得到没有错误,这个系统刷新更新数据库有时从输入的值,有时不..有时你必须手动刷新页面的条目不再在屏幕上.. –

回答

0

缺少一些在你的问题情境,以使其更清晰,但听起来像你应该叫post要求只有一次作为succeded前者要求,如:

$(document).on('click', 'button.markScheduled', function (e) { 

    var ordid = $(this).attr('ordid'); 
    var scheduledate = $('input.scheduleDate').val(); 

    $.ajax({ 
     url: "assets/ajax/order.php", 
     type: "POST", 
     data: { 
      ordid: ordid, 
      date: scheduledate 
     }, 
     error: function (exception) { 
      alert('Exception:' + exception); 
     } 
    }).done(function() { 
     $.post('assets/ajax/calldata/newords.php', function (data) { 
      $('#newords').html(data).find('.datepicker').datepicker({ 
       todayHighlight: 'TRUE', 
       autoclose: true 
      }); 
     }); 
    }); 
}); 

这是说,你有更好的使用只有一个要求,更新数据库,并处理在页面上返回结果...

+0

如何输出到Chrome控制台? –

相关问题