Wordpress 表单不提交数据

Posted

技术标签:

【中文标题】Wordpress 表单不提交数据【英文标题】:Wordpress Form Not Submitting Data 【发布时间】:2018-02-03 16:43:30 【问题描述】:

我在 wordpress 网站上工作,我创建了自定义表单,我在其中获取凭证代码,并在验证此代码后,将此表单提交到另一个 url,在表单操作中定义,这是用于这项工作的 jquery,

<script type="text/javascript">
    $( document ).ready(function() 
        var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
        $( "#submit_btn_redeem" ).click(function(event) 
          event.preventDefault();
            var form = $("#form-voucher");
            var voucher_code = $("#voucher_code").val();
            var btn = $(this);
            if(voucher_code!="")
                $("#voucher_code").removeClass("error-fld");
                btn.prop('disabled', true);
                btn.attr("disabled","disabled");
                $(".loading").show();
                var action_data = 
                    'action': 'check_voucher_code',
                    'voucher_code': voucher_code
                ;

                $.ajax( 
                    type: 'POST', 
                    url: ajaxurl, 
                    data: action_data, 
                    dataType: 'json',
                    success: function (response)  
                        $(".loading").hide();
                        btn.prop('disabled',false);
                        btn.removeAttr("disabled");

                        if(response.status==1)
                            $(".response").html(response.message);
                            $(".response").show().delay(2000).hide(0);
                            alert($("#voucher_code").val());
                            //return false;
                            setTimeout(function() 
                                document.getElementById("form-voucher").submit(); 
                            , 1000);


                        else
                            $("#voucher_code").addClass("error-fld");
                            $(".response").html(response.message);
                            $(".response").show().delay(3000).hide(0);

                        
                    
                );

            else
                $("#voucher_code").addClass("error-fld");
            



        );
    );
</script>

问题是当它在给定的 url 上提交时,它首先使用 POST 方法重定向到 301,然后再次生成不带参数的 GET 请求并提交到该 url,我在操作 url 上转储了 $_REQUEST,这里没有得到任何数据,我还检查了 .htaccess 和重定向插件,没有这样的 url 用于重定向,问题是使用 post 方法重定向提交表单,而使用 GET 方法可以正常工作,任何机构都可以提供帮助

【问题讨论】:

【参考方案1】:

你需要在你的主题的function.php文件中定义动作函数,看起来像这样

add_action( 'wp_ajax_nopriv_check_voucher_code', 'functiontohook' );
add_action( 'wp_ajax_check_voucher_code', 'functiontohook' );

之后,您需要在 ajax 请求中指定您已完成的操作。在 functiontohook 中,您可以获取所有 json 数据并执行您想做的任何事情。让我知道是否有任何不清楚的地方。我希望这会帮助你。

【讨论】:

以上是关于Wordpress 表单不提交数据的主要内容,如果未能解决你的问题,请参考以下文章

在 wordpress 网站中提交带有 paypal 按钮的表单数据

WordPress 自定义表单在管理面板上提交数据视图?

WordPress TinyMCE 不提交内容

在 wordpress 中编码时防止双重表单提交

Wordpress 联系表 7 插件提交到特定页面

提交并刷新页面后清除表格-Wordpress