2013-03-27 2 views
2

У меня есть форма, которая позволяет вам одновременно добавлять несколько списков.Передача данных массива данных через jQuery AJAX

Я также должен пройти через 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:"); 
    }); 

Я хочу передать в мастер-ID и массивы через AJAX, так что они могут затем быть $ _REQUEST'ed в PHP. «Md5check» должен быть быть там.

+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:"); 
}); 
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; 
}; 
Смежные вопросы