其他分享
首页 > 其他分享> > WordPress-使用AJAX提交表单

WordPress-使用AJAX提交表单

作者:互联网

我创建了一个Wordpress插件,以允许我的客户创建具有rsvp功能并为事件付费的事件.我对某些代码需要放置在何处以及如何向插件文件夹函数文件中的函数提交表单感到困惑.

目前,它返回一个空白警报.

我在单个活动的页面上显示此表单:

<div id="rsvpContent">  
  <form id="Attendevent" action="">
   <input id="attend" name="attend" type="checkbox" value="yes" /><label for="attent">Yes, I plan to attend.</label>
 </form>

然后,将其放入常规的header.php文件中:

 $("#attend").click(function(){
    var form = $("#Attendevent").serialize();

    $.ajax({
      type:'POST',
      data:{"action":"Attending","data": form },
      url: "<?php bloginfo('url'); ?>/wp-admin/admin-ajax.php",
      beforeSend: function(){
        alert(form);
      },
      success: function(data) {
            alert(data);
      }

    }); 

 });

然后,我将此函数放置在plugin文件夹的main函数页面中:

function eventAttent() {
$wpdb->show_errors();
            if($_POST['attend'] == 'yes') {
                $wpdb->insert('wp_event_attendants',
                array( 'event_id' => get_the_ID(),'user_id' => $current_user->ID));
 echo $wpdb->print_error();
                }
            }


 add_action('wp_ajax_Attending', 'eventAttend');
 add_action('wp_ajax_nopriv_Attending', 'eventAttend');

用户单击“参加”复选框时如何调用此函数?

解决方法:

尝试使用此代码.这是我测试过的代码.我可以正常工作..但是它不会处理FILE上传.

的HTML

<form id="form_name" name="form_name" >
<span id='errfrmMsg' style='margin:0 auto;'></span>
  //form attributes just as input boxe.
  <input type="hidden" name="action" value="anyName" />
  <input id="submit_button" onclick="submit_form();" type="button" value="Send" />
</form>

j查询

function submit_form()
{
  jQuery.post(the_ajax_anyName.ajaxurl_anyName,
   jQuery("#form_name").serialize(),
     function(response_from_the_action_function){
                jQuery("#errfrmMsg").html(response_from_the_action_function).css({"display":"block"});
      }
   );
}

functions.php中的php代码

wp_register_script("ajax-anyName", get_bloginfo('template_directory')."/js/custom_js.js", array( "jquery"));
wp_enqueue_script('ajax-anyName');
wp_localize_script("ajax-anyName","the_ajax_anyName", array("ajaxurl_anyName" => admin_url("admin-ajax.php")));
// add actions
add_action( "wp_ajax_anyName", "ajax_action_anyName" );
add_action( "wp_ajax_nopriv_anyName", "ajax_action_anyName" );

function ajax_action_anyName(){ 
  //Form processing code in PHP


}

标签:ajax,wordpress-plugin,wordpress,php,jquery
来源: https://codeday.me/bug/20191031/1973676.html