2013-03-08 3 views
0

В моем коде отсутствует что-то. У меня есть список текстовых полей, предназначенных для процентных значений, и может быть множество входов.jQuery - Сериализовать массив входов

// loop through unknown inputs with different values 
<input name="DESIREDPERCENT[<?php echo $recid; ?>]" class="percinputbox" /> 
// end loop 

// attach click event to this element 
<span id="updatepercs">Update Percentages</span> 

Я тогда простой поверочного элемент, чтобы отправить все входы с классом percinputbox

$(document).ready(function(){ 

$('#updatepercs').click(function(){ 
    var allinputs = $("input.percinputbox").serialize(); 
    console.log(allinputs); //DESIREDPERCENT%5B73%5D=50.00&DESIREDPERCENT%5B104%5D=50.00  

    $.ajax({ 
    url:'update.php', 
    data:"formId=updatepercentages" + allinputs, 
    success:function(response){ alert(response); } 
    }); 

}); 

У меня есть мой php прислушиваясь к $.ajax:

update.php

<?php 
if($_POST['formId'] == 'updatepercentages'){ 
    foreach($_REQUEST['DESIREDPERCENT'] as $key){ 
    echo $key; 
    } 
} 
?> 

До сих пор я получаю только один вход va ЛУЭ. Поэтому я определенно неправильно делаю отправку.

Я открыт для лучшего/оптимизированного способа здесь. Обычно я использую тег <form> для отправки форм, но я хочу знать, как отправить эти входы с помощью jquery.

ответ

1

Вы пропускаете & между formId=updatepercentages и allinputs

data:"formId=updatepercentages&" + allinputs,

+0

перламутр !! Я знал, что это было что-то мирское! – coffeemonitor

+0

перламутр –

Смежные вопросы