2013-03-27 39 views
2

我有一个表单,允许您一次添加多个列表。通过jQuery传递表单数组数据AJAX

我也必须通过md5check。

I.E.)

<select name="master_id"></select> 

<select name="id2[]"></select> 
<select name="id3[]"></select> 
<input name="text[]"></input> 
<input name="text2[]"></text> 
<input name="text3[]"></text> 
<input name="check[]" type="checkbox"></input> 

<select name="id2[]"></select> 
<select name="id3[]"></select> 
<input name="text[]"></input> 
<input name="text2[]"></text> 
<input name="text3[]"></text> 
<input name="check[]" type="checkbox"></input> 

<select name="id2[]"></select> 
<select name="id3[]"></select> 
<input name="text[]"></input> 
<input name="text2[]"></text> 
<input name="text3[]"></text> 
<input name="check[]" type="checkbox"></input> 

jQuery.ajax({ 
    type: "POST", 
    url: ipb.vars['base_url'] + "app=main&module=ajax&section=upload&do=upload", 
    data: { 
     'md5check': ipb.vars['secure_hash'], 
    } 
    }).done(function() { 
    alert("Data Saved:"); 
    }); 

我想在主ID,并通过AJAX的阵列,通过让他们那么可以通过$ _REQUEST'ed在PHP。 'md5check'必须在那里。

+0

我已经提供了太多的概括,我出去了,并给出了具体细节。 – 2013-03-27 06:45:55

回答

0

数据也可以采取一个字符串的话,你可以使用

jQuery.ajax({ 
    type: "POST", 
    url: ipb.vars['base_url'] + "app=main&module=ajax&section=upload&do=upload", 
    data: $('input[name="username[]"],input[name="password[]"],input[name="rawtext[]"]').serialize() 
    + '&md5check='+ipb.vars['secure_hash'], 
}).done(function() { 
    alert("Data Saved:"); 
}); 
0

HTML表单:

<form action="" method="POST" id="myform"> 
    <input name="username[]"> 
    <input name="password[]"> 
    <input name="rawtext[]"> 
    <input name="username[]"> 
    <input name="password[]"> 
    <input name="rawtext[]"> 
    <input name="username[]"> 
    <input name="password[]"> 
    <input name="rawtext[]"> 
    <input name="submit" type="submit" value="submit"> 
</form> 

的jQuery:

$('#myform').submit(function(event) { 
    event.preventDefault(); 
    //comment this line out 
    alert($(this).serialize()); 
    $.post(ipb.vars['base_url'] + "app=main&module=ajax&section=upload&do=upload&", { 
    $(this).serialize() }) 
    .done(function(data) { 
    alert("Data Loaded: " + data); 
    }); 
return false; 
}); 
0

您可以使用以下。

$('#myform').submit(function(e) { 
    e.preventDefault(); 
    e.stopPropagation(); 

    var formData = $(this).serializeObject(); 
    var postData = $.extend({}, formData, { 
     app: main, 
     module: ajax, 
     section: upload, 
     do: upload 
    }); 

    $.post(ipb.vars['base_url'], postData, 
     function(data) { 
      alert(data); 
     } 
    ); 
}); 

$.fn.serializeObject = function() { 
    var objectData = {}; 
    var serializeArr = this.serializeArray(); 

    $.each(serializeArr, function() { 
     if(objectData[this.name] !== undefined) { 
      if(!objectData[this.name].push) { 
       objectData[this.name] = [objectData[this.name]]; 
      } 

      objectData[this.name].push($.trim(this.value) || ''); 
     } else { 
      objectData[this.name] = $.trim(this.value) || ''; 
     } 
    }); 

    return objectData; 
};