Support

Account

Home Forums Front-end Issues Saving acf_form() via AJAX – maybe it can be done?

Solving

Saving acf_form() via AJAX – maybe it can be done?

  • So I have an acf_form() I want to save via AJAX. I’ve looked around online and there doesn’t seem to be much on this subject, or else, I’m an awful google searcher.

    So here is what I’m thinking.

    acf_form() needs acf_form_head() to save data from $_POST to acf fields.

    So I figure, if I add these hooks and localization:

    add_action( 'wp_ajax_nopriv_acf_form_head', 'acf_form_head' );
    add_action( 'wp_ajax_acf_form_head', 'acf_form_head' );
    wp_localize_script( 'my-script', 'acf_form_head', array( 'ajaxurl' => admin_url( 'admin-ajax.php', 'http' ) ) );

    And if I am able to get javascript to format the names and val() of the acf_form() inputs as acf_form_head() is expecting, [something like this]

     = Array
    (
        [_acfnonce] => f0c5e0fd02
        [_acfchanged] => 0
        [_acf_form] => eyJpZCI6ImRhdGEtc3Vic2VjdGlvbiIsInBvc3RfaWQiOjIwOTUsIm5ld19wb3N0IjpmYWxzZSwiZmllbGRfZ3JvdXBzIjpmYWxzZSwiZmllbGRzIjpbImZpZWxkXzU1YjEyMDhhNDBiMGUiLCJmaWVsZF81NTk1YzFmNGEzZTNhIiwiZmllbGRfNTU5NWMyMGFhM2UzYiIsImZpZWxkXzU1OTVjMjZmYTNlM2MiXSwicG9zdF90aXRsZSI6ZmFsc2UsInBvc3RfY29udGVudCI6ZmFsc2UsImZvcm0iOnRydWUsImZvcm1fYXR0cmlidXRlcyI6eyJpZCI6InBvc3QiLCJjbGFzcyI6IiBhY2YtZm9ybSIsImFjdGlvbiI6IiIsIm1ldGhvZCI6InBvc3QifSwicmV0dXJuIjoiaHR0cDpcL1wvYW1lcmlmbHV4LmRldlwvc2l0ZXNcL2NvcmUtc2l0ZS1tYW5hZ2VtZW50XC9jb3JlLXN1Ym1pc3Npb24tZm9ybVwvP2NvcmU9MjU3NDIwZmU0MmQzN2JmYTk4NjMwNmYxY2U3YjI5Y2UmdXBkYXRlZD10cnVlIiwiaHRtbF9iZWZvcmVfZmllbGRzIjoiIiwiaHRtbF9hZnRlcl9maWVsZHMiOiIiLCJzdWJtaXRfdmFsdWUiOiJTYXZlIiwidXBkYXRlZF9tZXNzYWdlIjoiIiwibGFiZWxfcGxhY2VtZW50IjoidG9wIiwiaW5zdHJ1Y3Rpb25fcGxhY2VtZW50IjoibGFiZWwiLCJmaWVsZF9lbCI6ImRpdiIsInVwbG9hZGVyIjoid3AifQ==
        [acf] => Array
            (
                [field_55b1208a40b0e] => Array
                    (
                        [0] => Array
                            (
                                [field_55b1208a40b10] => Yes
                                [field_55b1208a40b11] => Yes
                                [field_55b1208a40b12] => Yes
                            )
                        [1] => Array
                            (
                                [field_55b1208a40b10] => Select
                                [field_55b1208a40b11] => Select
                                [field_55b1208a40b12] => Select
                            )
                        [2] => Array
                            (
                                [field_55b1208a40b10] => Select
                                [field_55b1208a40b11] => Select
                                [field_55b1208a40b12] => Select
                            )
                        [3] => Array
                            (
                                [field_55b1208a40b10] => Select
                                [field_55b1208a40b11] => Select
                                [field_55b1208a40b12] => Select
                            )
                    )
                [field_5595c1f4a3e3a] => asdf asd fasd asd asd 
                [field_5595c20aa3e3b] => a dsfa dsf asdf
                [field_5595c26fa3e3c] =>  asdf asdf
            )
    )

    Then it maybe possible to use AJAX to save an acf_form.

    Anyone else tried this, or something similar?

    Thanks

  • Seems to be the start of a solution here http://support.advancedcustomfields.com/forums/topic/frontend-form-post-via-ajax/

    This one seems to have more information and even some helpful guidance from our benefactor. http://support.advancedcustomfields.com/forums/topic/using-acf-form-in-ajax-call/

    Here’s one I contributed to that appears to ave been a help http://supp ort.advancedcustomfields.com/forums/topic/use-update_field-with-ajax/

    hope some of this helps

  • Hi John,

    Thanks, I was able to hook acf_form_head into:

    wp_localize_script( 'csm-csf', 'acf_form_head', array( 'ajaxurl' => admin_url( 'admin-ajax.php', 'http' ) ) );
    add_action( 'wp_ajax_nopriv_acf_form_head', 'acf_form_head' );
    add_action( 'wp_ajax_acf_form_head', 'acf_form_head' );

    And pass it data via ajax and get a response. Looks like building out the data for basic form elements is easy enough, but repeater fields and select2 off screen fields are going to take some work.

    But I’ll look at other links you provided. Thanks!

Viewing 3 posts - 1 through 3 (of 3 total)

The topic ‘Saving acf_form() via AJAX – maybe it can be done?’ is closed to new replies.