0

我使用带有 Jquery 选项卡的页面,如果我在选项卡中提交其中一个表单,则只有该选项卡被提交并使用此 jquery 代码刷新:

$(document).on("submit", "#plaatsen_stap3", function(event) {
/* stop form from submitting normally */    

event.preventDefault();      
    $.ajax({
      type:"GET",
      url:"../plaatsen_advertentie/plaatsen_advertentie_stap3.php",
      cache: false,                 
      data: $("#plaatsen_stap3").serialize(),
      success:function(data){
        $("#tab2").html(data);
      }     
    });
});

但在必须付款的情况下,我想用付款页面重新加载页面。我想在 div 重新加载数据后这样做,因为我需要在数据库中使用来自 GET 的数据放置一个支付行。位置可以选择吗?如果我现在使用它,则只有 div (tab2) 会加载付款页面....

所以: 1.push submit 2.submit the form and load page/script in div by Ajax 3.check in php script (in the div) if payment is required 4.if yes,在数据库中添加支付数据行并重新加载整个带有付款页面的页面(在 url 中有一些 Get 数据(最后插入的 id)

4

3 回答 3

0
  success:function(data){
    $("#tab2").html(data);
    location.href = "/yourpage.php";
  }
于 2013-03-30T20:09:48.560 回答
0

我认为 load() 是您正在寻找的。http://api.jquery.com/load/

下面的代码旨在作为指导,我什至不确定它是否有效(我还没有测试过)。但我希望它会有所帮助。

我会做这样的事情:

//Step 1
$(document).on("submit", "#plaatsen_stap3", function(event) {
/* stop form from submitting normally */    

event.preventDefault();      
    $.ajax({
      type:"GET",
      url:"../plaatsen_advertentie/plaatsen_advertentie_stap3.php",
      cache: false,                 
      data: $("#plaatsen_stap3").serialize(),
      success:function(data){


   //Step 2 - submit the form and load page/script in div by Ajax 
   //Make sure array[] is an actual array that is sent to the test.php-script.
   $("#tab2").load("test.php", { 'array[]' , function() {
            //Step 3 - check in php script (within the div) if payment is needed (Do this from test.php - don't check the actual div but check values from array[])
            //Step 4 -  if yes,add row with payment data in database and reload entire page with payment page (with some Get data in the url (last inserted id)                     
            //Do this from test.php and use header-redirect to reload entire page   
           $("tab2").html(data); //Do this when test.php is loaded
       }

       } );


      }     
    });
});
于 2013-03-31T05:32:56.613 回答
0

既然您想在生成 HTML 后执行此操作,请给大约 5 秒的时间?

success:function(data){
    $("#tab2").html(data);
    setTimeout(function(){location.href = "/yourpage.php";}, 5000);
}

这适用于您的用例。这不能从服务器端完成。

于 2013-03-30T20:32:27.740 回答