重新运行Ajax脚本?

时间:2014-04-08 20:20:04

标签: javascript jquery html ajax

如果我有一个类似下面的脚本,则会运行一个表,其中包含从外部PHP文件注入到页面中的数据。

<script>
      $(document).ready(function(){
       var response = '';
        $.ajax({ type: "GET",   
          url: "Records.php",   
             success : function(text)
              {
                response = text;
              }
           });

           alert(response);
         });
</script>

我在下面有另一个脚本,用户可以在其中添加记录到数据库。

<script id="sosurce" language="javascript" type="text/javascript">
$("#newitemadd").click(function(){
  $('#New').modal('show');
    $("#insertResults").click(function(){ 
        var getname = $('#getname').val();
        var getquant = $('#getquant').val();
        var getprice = $('#getprice').val();
        var getdesc = $('#getdesc').val();
               $.ajax({                                      
                    url: 'api2.php',    
                    data: "name="+getname+"&quantity="+getquant+"&price="+getprice+"&description="+getdesc,
                     success: function(data)
                     {  $('#New').modal('hide');
                        $("#success").html(data);
                        $('#success').slideDown().delay(3000).slideUp().reload
                    },
                     error: function() { 

                      $("#failure").alert('show');
                  }       
              }); 
          });
});
</script>

它完全按预期工作但是,如何让第一个脚本重新运行,以便刷新插入页面的表格以显示刚刚添加的新结果?

2 个答案:

答案 0 :(得分:1)

将第一个代码移动到类似

的函数中
<script>
  $(document).ready(LoadData);

  function LoadData() {
    var response = '';
    $.ajax({ 
      type: "GET",   
      url: "Records.php",   
      success : function(text) {
        response = text;
      }
    });

    alert(response);
  };
</script>

从其他函数调用此函数,例如成功

<script id="sosurce" language="javascript" type="text/javascript">
  $("#newitemadd").click(function() {
    $('#New').modal('show');
    $("#insertResults").click(function() { 
      var getname = $('#getname').val(),
          getquant = $('#getquant').val(),
          getprice = $('#getprice').val(),
          getdesc = $('#getdesc').val();

      $.ajax({                                      
        url: 'api2.php',    
        data:       
          "name="+getname+"&quantity="+getquant+"&price="+getprice+"&description="+getdesc,
        success: function(data) {  
          $('#New').modal('hide');
          $("#success").html(data);
          $('#success').slideDown().delay(3000).slideUp().reload

          // Call load data again to refresh the table
          LoadData();
        },
        error: function() { 
          $("#failure").alert('show');
        }       
      }); 
    });
  });
</script>

答案 1 :(得分:1)

你可以这样做。

<script>
  var renderTable = function() {
        var response = '';
                $.ajax({ type: "GET",   
                  url: "Records.php",   
                     success : function(text)
                      {
                        response = text;
                      }
                   });

                   alert(response);
    }

    // Call function onload
    jQuery(function($){
      renderTable();
   $(".refreshBtn").click(function(){
        renderTable();
     })

    });

</script>