php从ajax div重新加载页面

时间:2013-03-30 20:00:52

标签: php ajax jquery

我使用带有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提交 2.通过Ajax提交表单并在div中加载页面/脚本 3.如果需要付款,请检查php脚本(在div内) 4.如果是,请在数据库中添加带有付款数据的行,并使用付款页面重新加载整个页面(在网址中有一些获取数据(最后插入的ID)

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

既然您想在HTML生成后再做一次,那么请花一些时间,大约5秒钟?

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

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

答案 2 :(得分: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
       }

       } );


      }     
    });
});