Javascript 在Ajax和Wordpress表单中返回未定义的FormData
我使用jQuery/Ajax为Wordpress主题(自定义)创建了一个联系人表单。当我用“it works”测试wp_send_json_success时,它返回为可疑。但是,当我在表单上添加$formdata和字段名时,from在JS警报框中返回undefined。我很确定我输入的是正确的,因为我遵循了本教程:。但我似乎无法让它发挥作用 这里是functions.php的代码Javascript 在Ajax和Wordpress表单中返回未定义的FormData,javascript,jquery,ajax,wordpress,form-data,Javascript,Jquery,Ajax,Wordpress,Form Data,我使用jQuery/Ajax为Wordpress主题(自定义)创建了一个联系人表单。当我用“it works”测试wp_send_json_success时,它返回为可疑。但是,当我在表单上添加$formdata和字段名时,from在JS警报框中返回undefined。我很确定我输入的是正确的,因为我遵循了本教程:。但我似乎无法让它发挥作用 这里是functions.php的代码 add_action('wp_ajax_contact', 'contact_form'); add_action
add_action('wp_ajax_contact', 'contact_form');
add_action('wp_ajax_nopriv_contact', 'contact_form');
function contact_form()
{
$formdata = [];
wp_parse_str( $_POST['contact'], $formdata );
wp_send_json_success( $formdata ['myName'] );
}
表格代码如下:
<form id="contact">
Name: <input type="text" name="myName" class="contactform
fields" placeholder="name"required><br><br>
Email: <input type="text" name="myEmail" class="contactform
fields" placeholder="you@youremail.com" required><br><br>
<p>What is your inquiry regarding?</p><be>
<input type="radio" name="reason" value="general">
<label for="news">General Inquiry</label><be>
<input type="radio" name="reason" value="course">
<label for="news">Courses</label><br>
<p class="contact_txt">Your Message:</p>
<textarea name="msg" rows="5" cols="700" placeholder="begin
typing message here..." required>
</textarea>
<p class="contact_txt">Would you like to subscribe to our
newsletter?</p>
<br>
<input type="checkbox" name="news" value="Subscribe">
<label for="news">Yes, I would like to subscribe</label>
<br>
<input class="btns" name="btn-send" id="mySubmit" type="submit" value="submit">
<input class="btns" name="btn-reset" id="myReset" type="reset" value="reset">
</form>
名称:
电子邮件:
你的询问是关于什么的
一般调查
课程
您的信息:
您想订阅我们的
时事通讯
是的,我想订阅
此处的脚本:
<script>
jQuery('#contact').submit( function(event){
event.preventDefault();
var endpoint = '<?php echo admin_url('admin-ajax.php' ); ?>';
var form = jQuery('#contact').serialize();
var formdata = new FormData;
formdata.append('action', 'contact');
formdata.append('contact', 'form');
jQuery.ajax(endpoint, {
type: 'POST',
data: formdata,
processData: false,
contentType: false,
success: function(res){
alert(res.data);
},
error:function(err){
}
})
})
</script>
jQuery(“#联系人”).submit(函数(事件){
event.preventDefault();
var端点=“”;
var form=jQuery('#contact').serialize();
var formdata=新formdata;
formdata.append('action','contact');
formdata.append('contact','form');
ajax(端点{
键入:“POST”,
数据:formdata,
processData:false,
contentType:false,
成功:功能(res){
警报(res.data);
},
错误:函数(err){
}
})
})
检查wp\u parse\u strand之后$formdata的值是多少成功中的'res'值是多少callback@HWSiew我不明白我在这方面真的是个新手……但看起来有几个人在学习本教程后也没有让它工作……在您的jquery ajax成功回调中,console.log(res)。检查wp_parse_strand之后$formdata的值是多少成功中的'res'值是多少callback@HWSiew我不明白我在这方面真的是个新手……但似乎有几个遵循本教程的人也没有让它工作……在您的jquery ajax成功回调中,console.log(res)。