gpt4 book ai didi

php - Wordpress 使用 AJAX 提交表单

转载 作者:可可西里 更新时间:2023-11-01 01:04:09 25 4
gpt4 key购买 nike

我创建了一个 Wordpress 插件,让我的客户可以创建事件,并能够回复和支付事件费用。我对需要放置某些代码的位置以及如何将表单提交到驻留在插件文件夹函数文件中的函数感到困惑。

此时它返回一个空白警报。

我在单个事件的页面上显示此表单:

<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);
}

});

});

然后,我把这个函数放到了插件文件夹的主函数页面:

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');

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

最佳答案

link是对主题进行 ajax 化的非常好的来源。

将此代码放入子主题的 functions.php 中。

// enqueue your custom js       
function my_js_method() {
// for jquery ui
wp_enqueue_style( 'jqueryUI_style', get_stylesheet_directory_uri() . '/customCSS/jquery-ui.css' );
wp_enqueue_script(
'handleFormAjax-script',
get_stylesheet_directory_uri() . '/handleFormAjax.js',
array( 'jquery' )
);
// add the appropriate hook
add_action( 'wp_enqueue_scripts', 'my_scripts_method' );


// declare the URL to the file that handles the AJAX request (wp-admin/admin-ajax.php)
wp_localize_script( 'handleFormAjax-script', 'MyAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );
}


// AJAX handler snippet
function myHandlerMethod(){
if (is_admin())
echo "woow working like a charm";
die();
}
//add the hooks for your handler function
add_action('wp_ajax_myHandlerMethod', 'myHandlerMethod');
// for users who are not logged in
add_action('wp_ajax_nopriv_myHandlerMethod', 'myHandlerMethod');

除此之外,您的表单应该如下所示。

<form id="assetForm" action= "/wp-admin/admin-ajax.php" method="post">
<input type="hidden" name="action" value="myFunction"/>
<button id="sbmBtn">SUBMIT </button>
</form>

最后,您的 js 函数应该处理您在 functions.php 中定义的处理函数

var data = jQuery("#myForm :input").serializeArray();

jQuery.post(jQuery("#myForm").attr("action"),data, function(info) {
// success code ;
});

关于php - Wordpress 使用 AJAX 提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15273292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com