2014-01-18 2 views
1

Я использую следующее, чтобы отправить форму при нажатии кнопки. Мне нужно прикрепить массив с именем 'selected' к этому сообщению. Я не могу использовать ajax для этого, потому что на странице публикации будет происходить загрузка. Мне нужен этот массив для обработки загружаемого файла.attach jquery array to form submit

Я сделал некоторые поиски и наткнулся на это, но не смог заставить его работать либо:

var input = $("<input>").attr({"type":"hidden","name":"selected"}).val(selected); 
$('#test').append(input); 

ток:

var selected = [1,2,54,56,23]; // could be anything 

$('#test').submit(function(event) { 
    if (selected.length > 0) 
    { 
     $('#test').attr('action','/process/p_screenshots_download2.php'); 
     $('#test').attr('type','post'); 
     return; 
    } 
    event.preventDefault(); 
}); 

ответ

3

Попробуйте

$('#test').submit(function(event) { 
    $.each(selected, function(i, v){ 
     var input = $("<input>").attr({"type":"hidden","name":"selected[]"}).val(v); 
     $('#test').append(input);  
    }); 
    if (selected.length > 0) 
    { 
     $('#test').prop('action','/process/p_screenshots_download2.php'); 
     $('#test').prop('method','POST'); 
     return; 
    } 
    event.preventDefault(); 
}); 

это добавит набор скрытых входов со значениями в массиве до формы перед отправкой.

+0

Не работает либо ... Я получаю что-то по строкам ... php? Selected [] = 1609449 & selected [] = 4697 и выполняет var_dump ($ _POST ['selected']); возвращает NULL. – user756659

+0

@ user756659 Какое действие вашей формы? это 'GET' или' POST' – Musa

+0

$ ('# test'). attr ('type', 'post'); – user756659