为了账号安全,请及时绑定邮箱和手机立即绑定

表单 AJAX PHP 不会将 POST 数据发送到 WordPress 数据库

表单 AJAX PHP 不会将 POST 数据发送到 WordPress 数据库

PHP
小唯快跑啊 2023-04-15 20:46:28
数周以来,我一直在社区和教程中寻找解决问题的方法,但找不到答案。我已经创建了一个表格来为我的 WordPress 数据库注册时事通讯的订户。仅使用 PHP,将 POST 数据发送到数据库。但是,我想将该表单与 ajax 一起使用,以阻止页面刷新。现在,不再有数据发送到数据库,我不明白为什么。使用下面的代码,我在控制台中获得以下信息:first_name=Claire&last_name=Lavigne&email=lavigneclaire81%40gmail.com®ister=newsletterPOST http://localhost/ /wp/wp-admin/admin-ajax.php 400(错误请求)错误 [对象对象] 错误请求   <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>    <div class="col s12 m6 newsletter">      <div id="form_output"></div>      <form id="newsletter" class="newsletter__form">        <div>          <input value="" type="text" name="first_name" id="first_name" placeholder="Prénom" autocomplete="given-name">          <input value="" type="text" name="last_name" id="last_name" placeholder="Nom" autocomplete="family-name">          <input value="" type="email" name="email" id="email" placeholder="Email">        </div>        <button class="newsletter__button" type="submit">Je m'abonne</button>        <input type="hidden" name="register" value="newsletter" />      </form>    </div>    $('#newsletter').on('submit', function(event) {      event.preventDefault();      var datas = $(this).serialize();      console.log(datas);      $.ajax({        type: "POST",        url: ajaxurl,        data: datas,        // data: {        //   action: 'ajax_newsletter'        // },        success: function(data, result) {          console.log(result + ' ' + data);          $("#form_output").html('Ok');        },        error: function(data, result, error) {          console.log(result + ' ' + data + ' ' + error);          $("#form_output").html('Erreur');        },      });    });    <?php    function eglise_scripts()    {        wp_enqueue_style(            'eglise-style-css',            get_theme_file_uri('/public/css/style.css'),            [],            '1.0.0'        );        wp_enqueue_script(            'eglise-js',            get_theme_file_uri('/public/js/app.js'),            [],            '1.0.0',            true
查看完整描述

1 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

您需要一个“操作”字段来使 WordPress AJAX 工作。

但是您还需要单独的字段来实现您的功能。

制作一个“通讯”动作,例如wp_ajax 示例

例子:

       $('#newsletter').on('submit', function(event) {

      event.preventDefault();

        var first_name = jQuery('#first_name').val();

        var last_name = jQuery('#last_name').val();

      var email = jQuery('#email').val();

        var newsletter = jQuery("input[name=newsletter]").val();


      $.ajax({

        type: "POST",

        url: ajaxurl,

   data: {

      name: name,

      action: 'newsletter',

          first_name: first_name,

          last_name: last_name,

          email: email,

          newsletter : newsletter },

        success: function(data, result) {

          console.log(result + ' ' + data);

          $("#form_output").html('Ok');

        },

        error: function(data, result, error) {

          console.log(result + ' ' + data + ' ' + error);

          $("#form_output").html('Erreur');

        },

      });

    });

然后它应该工作。


查看完整回答
反对 回复 2023-04-15
  • 1 回答
  • 0 关注
  • 103 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信