jQuery 变量未在 ajax 函数之前填充。
jQuery variable is not being populated before ajax function.
请看我的[fiddle][1].
我正在尝试获取给定 div 中包含选中复选框的所有表格。然后,这些表将作为变量 $content 发送到我的 ajax 函数,然后再发送到我的邮件函数。
但是,当我单击发送按钮时,出现错误 - 内容未定义。
jQuery('#search-query-send').click(function(){
jQuery('.selectthis input:checked').each(function() {
var content = jQuery(this).parents('div.apartment-entry-container').html();
var email = jQuery('#email').val();
});
jQuery.ajax({
url:"http://www.greenmonkeypublicrelations.com/scpads/wp-admin/admin-ajax.php",
type:'POST',
data:'action=apartmentsearchemail&email=' + email + '&content=' + content,
success:function(result){
//got it back, now assign it to its fields.
alert('Your message has been sent.');
console.log(result);
}
});
});
您已将它们声明为 .each()
回调函数的局部变量,因此它们不存在于点击回调的范围内。
jQuery('#search-query-send').click(function () {
var content = '',
email = '';
jQuery('.selectthis input:checked').each(function () {
content = jQuery(this).parents('div.apartment-entry-container').html();
email = jQuery('#email').val();
});
jQuery.ajax({
url: "http://www.greenmonkeypublicrelations.com/scpads/wp-admin/admin-ajax.php",
type: 'POST',
data: 'action=apartmentsearchemail&email=' + email + '&content=' + content,
success: function (result) {
//got it back, now assign it to its fields.
alert('Your message has been sent.');
console.log(result);
}
});
});
这里的变量content
是一个局部变量,只包含当前table的HTML。如果要将它们一起发送,则必须使用 +=
:
append/join 值
jQuery('#search-query-send').click(function() {
var content = '', email = '';
jQuery('.selectthis input:checked').each(function() {
content += jQuery(this).parents('div.apartment-entry-container').html();
var email += jQuery('#email').val();
});
jQuery.ajax({
url: "http://www.greenmonkeypublicrelations.com/scpads/wp-admin/admin-ajax.php",
type: 'POST',
data: 'action=apartmentsearchemail&email=' + email + '&content=' + content,
success: function(result) {
//got it back, now assign it to its fields.
alert('Your message has been sent.');
console.log(result);
}
});
});
但是,不建议通过 GET 方法发送 HTML 代码。你能尝试做一个 POST 吗?
这解决了我的问题。不必使用 GET 方法。我坚持使用 POST 方法,因为我最终需要记录这些电子邮件。
wp_mail($to, stripslashes($subject), stripslashes($message), $headers);
请看我的[fiddle][1].
我正在尝试获取给定 div 中包含选中复选框的所有表格。然后,这些表将作为变量 $content 发送到我的 ajax 函数,然后再发送到我的邮件函数。
但是,当我单击发送按钮时,出现错误 - 内容未定义。
jQuery('#search-query-send').click(function(){
jQuery('.selectthis input:checked').each(function() {
var content = jQuery(this).parents('div.apartment-entry-container').html();
var email = jQuery('#email').val();
});
jQuery.ajax({
url:"http://www.greenmonkeypublicrelations.com/scpads/wp-admin/admin-ajax.php",
type:'POST',
data:'action=apartmentsearchemail&email=' + email + '&content=' + content,
success:function(result){
//got it back, now assign it to its fields.
alert('Your message has been sent.');
console.log(result);
}
});
});
您已将它们声明为 .each()
回调函数的局部变量,因此它们不存在于点击回调的范围内。
jQuery('#search-query-send').click(function () {
var content = '',
email = '';
jQuery('.selectthis input:checked').each(function () {
content = jQuery(this).parents('div.apartment-entry-container').html();
email = jQuery('#email').val();
});
jQuery.ajax({
url: "http://www.greenmonkeypublicrelations.com/scpads/wp-admin/admin-ajax.php",
type: 'POST',
data: 'action=apartmentsearchemail&email=' + email + '&content=' + content,
success: function (result) {
//got it back, now assign it to its fields.
alert('Your message has been sent.');
console.log(result);
}
});
});
这里的变量content
是一个局部变量,只包含当前table的HTML。如果要将它们一起发送,则必须使用 +=
:
jQuery('#search-query-send').click(function() {
var content = '', email = '';
jQuery('.selectthis input:checked').each(function() {
content += jQuery(this).parents('div.apartment-entry-container').html();
var email += jQuery('#email').val();
});
jQuery.ajax({
url: "http://www.greenmonkeypublicrelations.com/scpads/wp-admin/admin-ajax.php",
type: 'POST',
data: 'action=apartmentsearchemail&email=' + email + '&content=' + content,
success: function(result) {
//got it back, now assign it to its fields.
alert('Your message has been sent.');
console.log(result);
}
});
});
但是,不建议通过 GET 方法发送 HTML 代码。你能尝试做一个 POST 吗?
这解决了我的问题。不必使用 GET 方法。我坚持使用 POST 方法,因为我最终需要记录这些电子邮件。
wp_mail($to, stripslashes($subject), stripslashes($message), $headers);