2010-11-03 53 views
0

嗨,我使用下面的代码来获取数据并将其发送到一个PHP页面,它工作正如我想要的但它只发送第一个“.order”它遇到,即。我需要发送每个元素与class =“order”,这是某种.each()?通过AJAX发送每个类名称的元素到php

$('#submit').click(function(){ 
        var order=$('.order').html(); 
        var dataString = 'order='+ order; 

        $.ajax 
         ({ 
         type: "POST", 
         url: "order.php", 
         data: dataString, 
         cache: false, 
         success: function(html) 
          { 
           $("#response").html(html); 
          } 
         }); 
      }); 

这样做,而现在它的工作,离奇!

$('#submit').live('click',function(){ 
       var order=$('.order').text(); 
       var dataString = 'order='+ order; 

       $.ajax 
        ({ 
        type: "POST", 
        url: "order.php", 
        data: dataString, 
        cache: false, 
        success: function(html) 
         { 
          $("#response").html(html); 
         } 
        }); 
     }); 

回答

2

尝试var order = $('form').serialize()这里解释http://api.jquery.com/serialize/

除此之外,你必须做一些事情,如:

$('.order').each(function(){ 
    // Get values from order here... something like: order += $(this).html(); 
    // Also, note that if '.order' are inputs you should use $(this).val() instead of $(this).html(); 
}); 

希望它帮助。

1

我相信这应该这样做:

var order=$('.order') 
    .map(function(){ return this.innerHtml; }) 
    .get().join(''); 
var dataString = 'order='+ order; 
+0

您需要对请求进行编码。最好的方法是做'var dataString = {“order”:order};'并让jQuery处理编码。 – lonesomeday 2010-11-03 15:17:25