我正在尝试使用jQuery创建一个简单的联系人表单来验证表单,并使用AJAX将其传递给PHP和WPwp_mail()
发送它。
我有这样一个简单的表单。
<form role="form">
<div class="form-group">
<label class="">Name</label>
<input type="text" id="name" class="form-control" name" />
</div>
<div class="form-group">
<label class="">Email</label>
<input type="text" id="email" class="form-control" name="email" />
</div>
<?php wp_nonce_field( \'atex_php\', \'atex_nonce\' ); ?>
<button class="submit">Submit</button>
</form>
用于验证输入并发送到PHP的jQuery函数:
//IsEmail and fadeOut functions aren\'t shown
$atj(function(){
$atj(\'submit\').click(function(e) {
e.preventDefault();
if(verfiyFields()) {
$atj.post({
data : {
action : "request",
firstName : $atj("#name").val(),
email : $atj("#email").val(),
}
})
}
});
})
//Verfiy
function verfiyFields() {
var flag = true;
var name = $atj(\'#name\');
var email = $atj(\'#email\');
if(name.val().indexOf(\' \') === -1 ){
name.parent().prepend(\'<p class="form-error">Please enter name, first space last</p>\');
fadeOut();
flag = false;
}
if(!IsEmail(email.val())){
email.parent().prepend(\'<p class="form-error">Please enter valid email address</p>\');
fadeOut();
flag = false;
}
return flag;
}
以及
functions.php
:
add_action( \'wp_ajax_nopriv_request\', \'my_action_callback\' );
function my_action_callback() {
if ( isset( $_POST[\'atex_nonce\'] ) && wp_verify_nonce( $_POST[\'atex_nonce\'], \'atex_php\' ) ) {
$name = $_POST[\'firstName\'];
$email = $_POST[\'email\'];
$send_to = [email protected];
$subject = \'Request from\'. $name;
$success = wp_mail($send_to, $subject, $message);
if($success){
return true;
}else{
return false;
}
}
}
我得到一个
404 Not Found
对于
[object%20Object]
单击提交时,在chrome开发工具的网络选项卡中。
我怎样才能让它工作