jQuery的变量没有被AJAX功能之前填充。变量、功能、jQuery、AJAX

2023-09-10 21:55:58 作者:却不辜负。

请看看我的[小提琴] [1]。

我试图让所有的表包含在一个给定的DIV一个选中的复选框。该表将随后被发送到我的邮箱功能之前发来的变量$内容,以我的AJAX功能。

然而,当我点击发送按钮,我得到的错误 - 内容没有定义。

 的jQuery('#搜索查询发送)。点击(函数(){

                jQuery的('。selectthis输入:选中)每个(函数(){。
                    VAR含量= jQuery的(本)。家长('div.apartment入容器)HTML()。
                    。VAR电子邮件=的jQuery('#邮件)VAL();
                });


                jQuery.ajax({
                    网址:http://www.greenmonkeypublicrelations.com/scpads/wp-admin/admin-ajax.php
                    键入:POST,
                    数据:'行动= apartmentsearchemail和放大器;电子邮件='+电子邮件+'和;内容='+含量,
                    成功:函数(结果){
                    //恢复了过来,现在将其分配给它的领域。
                        警报('您的邮件已发送。');
                        执行console.log(结果);
                    }
                });
            });
 

解决方案

变量内容这里是一个局部变量,并且只包含当前表的HTML。如果你想送他们在一起,你将不得不追加/使用连接值 + =

 的jQuery('#搜索查询发送)。点击(函数(){

  VAR内容='',电子邮件='';

  jQuery的('。selectthis输入:选中)每个(函数(){。
    。内容+ = jQuery的(本)。家长('div.apartment入容器)HTML();
    VAR电子邮件+ =的jQuery('#邮件)VAL()。
  });

  jQuery.ajax({
    网址:http://www.greenmonkeypublicrelations.com/scpads/wp-admin/admin-ajax.php
    键入:POST,
    数据:'行动= apartmentsearchemail和放大器;电子邮件='+电子邮件+'和;内容='+含量,
    成功:函数(结果){
      //恢复了过来,现在将其分配给它的领域。
      警报('您的邮件已发送。');
      执行console.log(结果);
    }
  });
});
 
jQuery 点击页面1的一个链接用ajax去获取页面2的内容,然后再点击页面2的一个链接去获取页面3的内容

不过,通过GET方法发送HTML code是不可取的。你可以尝试做一个POST呢?

Please take a look at my [fiddle][1].

I am trying to get all the tables with a selected checkbox contained in a given div. The tables will then be sent as a variable $content to my ajax function before being sent to my mail function.

However, when I click the send button, I am getting the error - content is not defined.

 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);             
                    }   
                }); 
            }); 

解决方案

The variable content here is a local variable, and only contains the current table's HTML. If you want to send them together, you will have to append/join the values using +=:

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);
    }
  });
});

However, sending HTML code via GET method is not advisable. Could you try to do a POST instead?