我试图将表单数据发送到一个名为attendants的表中。我已经创建了表单、AJAX和查询,但是在尝试测试时(提交表单时),我在控制台上看到了一个POST http://localhost/rsvp/wp-admin/admin-ajax.php 400 (Bad Request)错误。
不确定是什么导致了这一点,因为当我运行console.log(ajaxurl);时,它返回的URL是http://localhost/rsvp/wp-admin/admin-ajax.php,这是正确的。
不知道这里发生了什么?
编辑:我最近发现http://localhost/rsvp/wp-admin/admin-ajax.php返回0。
form.php (文件夹路径:rsvp > template-parts > parts > form.php):
<div class="form sectionPadding" id="rsvp-form">
<form id="rsvpForm" method="post">
<?php get_template_part('template-parts/snippets/form-step-1'); ?>
<?php get_template_part('template-parts/snippets/form-step-2'); ?>
</form>
</div>
<script type="text/javascript">
var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
</script>
form.js (form.js编译成theme.min.js )。theme.min.js的路径是rsvp > assets > build > js > theme.min.js):
jQuery('#rsvpForm').on('submit', function(e) {
e.preventDefault();
jQuery.ajax({
action: 'send_to_db',
dataType: "text",
type: "post",
data: $('form').serialize(),
url: ajaxurl,
success: function(data) {
console.log(data);
},
error: function() {
console.log("Error");
}
});
});
functions.php
add_action("wp_ajax_send_to_db", "send_to_db");
add_action("wp_ajax_nopriv_send_to_db", "send_to_db");
function send_to_db(){
if (isset($_POST['submit'])) {
global $wpdb;
$first_name = $_POST['fname'];
$table_name = $wpdb->prefix . "attendants";
$row_result = $wpdb->query("INSERT INTO $table_name (first_name) VALUES ('$first_name')" );
if ($row_result == 1){
echo "submitted";
} else{
echo "error";
}
die();
}
}
总之,我的文件夹结构是:
rsvp
assets
build
js
theme.min.js
template-parts
parts
form
form.php
form.js
functions.phphttps://stackoverflow.com/questions/61944666
复制相似问题