Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在不刷新页面的情况下使用ajax保存acf_表单_Php_Jquery_Ajax_Wordpress_Advanced Custom Fields - Fatal编程技术网

Php 如何在不刷新页面的情况下使用ajax保存acf_表单

Php 如何在不刷新页面的情况下使用ajax保存acf_表单,php,jquery,ajax,wordpress,advanced-custom-fields,Php,Jquery,Ajax,Wordpress,Advanced Custom Fields,我有三份acf\U表格。我想一个接一个地显示这些表单,并且我想在通过ajax单击按钮时保存每个表单,而无需刷新页面。现在每当我更新时,它都会刷新页面。 我将使用js通过display none和block进行显示 <div class="SetupNew"> <h2>Setup Deals To Attract New Clientele</h2> <p>Example: buy $15 get $3

我有三份acf\U表格。我想一个接一个地显示这些表单,并且我想在通过ajax单击按钮时保存每个表单,而无需刷新页面。现在每当我更新时,它都会刷新页面。 我将使用js通过display none和block进行显示

<div class="SetupNew">
            <h2>Setup Deals To Attract New Clientele</h2>
            <p>Example: buy $15 get $30 for services</p>
            <a href="javascript:void(0)"><p id="newDealsTxt">[Click Here To Setup] </p></a></div>
            <?php acf_form($args =  array(
                                          'post_id' => $post_id,
                                          'field_groups' => array(2029),
                                          'form_attributes' => array(
                                              'id'=>'newDeals'
                                           ),
                                      ));  ?>
            <div class="SetupEx">
            <h2>Setup Deals To Bring In Clientele During Nonpeak Hours</h2>
            <p>Example: buy $15 get $30 for services Tue-Thur 9am - 2pm.</p>          
            <a href="javascript:void(0)"><p id="exDealsTxt">[Click Here To Setup]</p></a></div>
            <?php  acf_form($args =  array(
                                          'post_id' => $post_id,
                                          'field_groups' => array(2047),
                                          'form_attributes' => array(
                                              'id'=>'exDeals'
                                          ),
                                      ));  ?>
            <div class="SetupFb">
            <h2>Setup $5 Off Coupon To Increase Testimonials And Sharing</h2>
            <p>Example: Leave a testimonial and get $5 off your next service.</p>
            <a href="javascript:void(0)"><p id="fbDealsTxt">[Click Here To Setup] </p></a></div>

            <?php  acf_form($args =  array(
                                          'post_id' => $post_id,
                                          'field_groups' => array(2123),
                                          'form_attributes' => array(
                                              'id'=>'fbDeals'
                                          ),
                                      ));  ?>
            <a href="javascript:void(0)"><h2 id="backk">Back << </h2>  </a>

建立交易以吸引新客户
示例:购买15美元,获得30美元的服务

安排交易,在非高峰时段吸引客户 示例:购买15美元即可获得30美元的服务费(周二至周四上午9点至下午2点)。

设置5美元折扣优惠券以增加推荐和分享 示例:留下一份推荐信,然后在下次服务中获得5美元的折扣


这来得很晚,但我今天也遇到了同样的问题。以下是我的javascript供参考:

// call this function on document ready or when your ajax page is loaded
function renderPage() {
  // initialize the acf script
  acf.do_action('ready', $('body'));

  // will be used to check if a form submit is for validation or for saving
  let isValidating = false;

  acf.add_action('validation_begin', () => {
    isValidating = true;
  });

  acf.add_action('submit', ($form) => {
    isValidating = false;
  });

  $('.acf-form').on('submit', (e) => {
    let $form = $(e.target);
    e.preventDefault();
    // if we are not validating, save the form data with our custom code.
    if( !isValidating ) {
      // lock the form
      acf.validation.toggle( $form, 'lock' );
      $.ajax({
        url: window.location.href,
        method: 'post',
        data: $form.serialize(),
        success: () => {
          // unlock the form
          acf.validation.toggle( $form, 'unlock' );
        }
      });
    }
  });
}