如何在jQuery中重新加载div

时间:2015-08-24 02:30:36

标签: javascript php jquery

我有一个div,其中我使用<div id="collapse2" class="panel-collapse collapse"> <div class="panel-body"> <div class="logininput"> <?php do_action( 'woocommerce_checkout_billing' ); ?> <button id="sendmail3" class="btn btn-info">Submit</button> </div> </div> </div> 如下:

sendmail3

当我点击按钮jQuery("#sendmail3").click(function(){ var country = jQuery("#billing_country").val(); var address = jQuery("#billing_address_1").val(); var city = jQuery("#billing_city").val(); var state = jQuery("#billing_state").val(); //alert(state); var pincode = jQuery("#billing_postcode").val(); var SecondData = "country="+country+"&address="+address+"&city="+city+"&state="+state+"&pincode="+pincode; var currenturl = jQuery(location).attr('href'); var url = currenturl; jQuery.ajax({ dataType : 'html', type: 'GET', url : url, data : SecondData, complete : function() { }, success: function(data) { jQuery("#collapse2").hide(); jQuery("#collapse3").show(); } }); }); 时,会触发一个jquery,如下所示:

collapse3

我还有一个div <div id="collapse3" class="panel-collapse collapse"> <div class="panel-body"> <form name="checkout" method="post" class="checkout woocommerce-checkout" action="<?php echo esc_url( $get_checkout_url ); ?>" enctype="multipart/form-data"> <div id="hideform"> <?php do_action( 'woocommerce_checkout_billing' ); ?> </div> <h3 id="order_review_heading"><?php _e( 'Your order', 'woocommerce' ); ?></h3> <?php do_action( 'woocommerce_checkout_before_order_review' ); ?> <div id="order_review" class="woocommerce-checkout-review-order"> <?php do_action( 'woocommerce_checkout_order_review' ); ?> </div> <?php do_action( 'woocommerce_checkout_after_order_review' ); ?></div> </form> <?php do_action( 'woocommerce_after_checkout_form', $checkout ); ?> </div> 如下:

sendmail3

在此div数据中动态加载

我想要的是,当我点击collapse3按钮时,只应重新加载div obj.cache。如何在不刷新页面的情况下重新加载此div

3 个答案:

答案 0 :(得分:2)

我认为这会奏效。

    success: function(data) 
                {
                    jQuery("#collapse2").hide();
                    jQuery("#collapse3").append(data); //I change this to .append() or try .html(data);


                }

希望这有效。

答案 1 :(得分:2)

您可以使用 load()方法:

  

从服务器加载数据并将返回的HTML放入匹配的元素中。

'list'

内置jQuery逻辑的一种非常干净的方式。查看完整文档:http://api.jquery.com/load/

答案 2 :(得分:1)

这个想法是在特定的div中获取你的页面,就像你在ajax调用问题中提到的那样,然后将数据返回给同一个div。

例如:

$("#sendmail3").click(function(){ var getdata= $("#collapse3").html(); ...

然后进行ajax调用并输入:

success: function(whatever-result) { $("#collapse3").html(getdata);...

只会刷新ID为

的div

<强>更新

我认为您希望通过此提到的div发送您的表单,然后重新加载div以再次显示该表单,这是另一种解决方案:

$("yourform").submit(function(event){
  var target =$(this).attr('action');
  event.preventDefault();
   $.post( target, $(this).serialize(), function(data){
     $("#supposed-div").html(data);// this will force submitting this form only through this div 
             });
      });

然后你可以使用JavaScript,JQuery或AJAX调用,它可以通过上面的代码,让表单按原样进入div。 在这个答案的开头,我曾经建议获得$("div").html();并将其作为 var getdata ,以便在提交后很容易再次放入 div.html