我可以在 WordPress 中创建具有相同操作和随机数的多个 ajax 函数/请求吗?

问题描述 投票:0回答:1

我可以创建多个具有相同操作和随机数的 ajax 函数/请求吗? 我创建了一个数组,并使用该数组,将生成一个新表单及其字段。我想对 AJAX 函数/请求使用相同的随机数和操作。

echo '<div class="forms_wrapper">';

    foreach ($sections as $section) :

    echo '<form action="#" method="POST" class="save_settings_form">';
        wp_nonce_field('settings_save_nonce', 'settings_save_nonce');

        echo '<input name="name" id="name" value="" />';
        echo '<input name="email" id="email" value="" />';

        //some more fields

        echo '<button>submit</button>';

        echo '</form>';
    endforeach;

    echo '</div>';

//阿贾克斯

add_action('wp_ajax_settings_save_nonce', array($this, 'settings_save_nonce'));

function settings_save_nonce() {
    if (!isset($_POST['settings_save_nonce']) || !wp_verify_nonce(sanitize_key(wp_unslash($_POST['settings_save_nonce'])), 'settings_save_nonce')) {
    return;
    }

    //Some functions

    wp_die();
}

//jquery

$(document).ready(function () {

    $('.save_settings_form').on('submit', function (e) {
        let task = $(this).serialize();
        task += "&action=settings_save_nonce";

        $.ajax({
            type: 'POST',
            url: ajax_url,
            data: task,
            success: function( response ) {
            }
        });
    });
});
jquery ajax wordpress
1个回答
0
投票

是的,您可以对 WordPress 中的多个 AJAX 请求使用相同的 AJAX 操作和随机数。您当前的设置看起来很适合您想要实现的目标。

$(document).ready(function () {
    $('.save_settings_form').on('submit', function (e) {
        e.preventDefault(); // Prevent the default form submission

        let task = $(this).serialize(); // Serialize the form data
        task += "&action=settings_save_nonce"; // Append the action

        $.ajax({
            type: 'POST',
            url: ajax_url,
            data: task,
            success: function(response) {
                // Handle the response as needed
                console.log(response);
            },
            error: function(xhr, status, error) {
                console.error(error);
            }
        });
    });
});

由于您要生成多个表单,请确保 AJAX 请求正确识别正在提交的表单。如有必要,您可能希望在序列化字符串中包含其他数据。

© www.soinside.com 2019 - 2024. All rights reserved.