通过jQuery AJAX传递表单数组数据

时间:2013-03-27 05:18:29

标签: php html jquery

我有一个表单,允许您一次添加多个列表。

我还必须通过md5check。

即。)

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

我想通过AJAX传入主ID和数组,这样它们就可以在PHP中被$ _REQUEST用了。 'md5check' 必须

3 个答案:

答案 0 :(得分: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:");
});

答案 1 :(得分: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;
});

答案 2 :(得分: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;
};