Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在ajax函数之前未填充jQuery变量。_Javascript_Jquery_Ajax_Forms_Click - Fatal编程技术网

Javascript 在ajax函数之前未填充jQuery变量。

Javascript 在ajax函数之前未填充jQuery变量。,javascript,jquery,ajax,forms,click,Javascript,Jquery,Ajax,Forms,Click,请看一下我的[小提琴][1] 我正在尝试获取包含在给定div中的选中复选框的所有表。这些表将作为变量$content发送到我的ajax函数,然后再发送到我的邮件函数 但是,当我单击“发送”按钮时,我得到的是错误-内容未定义 jQuery('#search-query-send').click(function(){ jQuery('.selectthis input:checked').each(function()

请看一下我的[小提琴][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回调函数的本地函数,因此它们不存在于click回调的作用域中

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);
        }
    });
});
这里的变量内容是一个局部变量,只包含当前表的HTML。如果要将它们一起发送,则必须使用+=:


但是,不建议通过GET方法发送HTML代码。你能试着发一篇帖子吗?

这就解决了我的问题。不必使用GET方法。我坚持使用POST方法,因为我最终需要记录这些电子邮件

wp_mail($to, stripslashes($subject), stripslashes($message), $headers);

为什么不建议这样做?@AlexKnopp-因为get用于按照标准读取数据,而post用于按照标准操作数据,即插入、更新、删除数据,所以不建议这样做。这可能是为什么当HTML到达我的收件箱时,我会返回斜杠。好的,我会做一些更改并发布我的答案。
wp_mail($to, stripslashes($subject), stripslashes($message), $headers);