@copenhagen72

Как реализовать добавление переменных POST при нажатии button?

Есть форма, в ней разные кнопки. По нажатию кнопки submit создается одна переменная, имя и значение берутся из атрибутов кнопки. Есть потребность отправлять несколько переменных при нажати кнопки. Как это сделать?
Прикинул следующий код кнопки:

<button type="button" onclick="addPOSTvar([ ['name1' , 'value1'] , ['name2' , 'value2'], ['name3','value3'] ])">Кнопка для 3 переменных</button>

и код javascript:
function addPOSTvar( params ) {  
    var form = $(this).closest('form');   
    form.append($.map(params, function (param) {
        return   $('<input>', {
            type: 'hidden',
            name: param[0],
            value: param[1]
        })
    }));  
   form.submit();


В jquery не силен, код сделал по примерам из интернета и он не работает. Что нужно исправить?
  • Вопрос задан
  • 487 просмотров
Решения вопроса 1
@copenhagen72 Автор вопроса
Решение такое: ru.stackoverflow.com/questions/466138/%D0%94%D0%BE...
<button type="button" onclick="addPOSTvar(this, [ ['name1' , 'value1'] , ['name2' , 'value2'], ['name3','value3'] ])">Кнопка для 3 переменных</button>


function addPOSTvar(context, params ) {  
var form = $(context).closest('form');   
form.append($.map(params, function (param) {
    return   $('<input>', {
        type: 'hidden',
        name: param[0],
        value: param[1]
    })
}));  
form.submit();
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
master2016
@master2016
Всё нормально.
Не надо ничего добавлять в $_POST. Он служит для других целей.
Добавляйте все необходимые данные в форму.
Ответ написан
junk1114
@junk1114
Web-программист
Похоже на жуткий костыль=)
Ответ написан
dmitry_pavlov
@dmitry_pavlov
World-class .NET freelance contractor (remotely)
При клике - отправляем AJAX post - api.jquery.com/jquery.post
Для этого сериализуем данные формы в массив - например так $( "#testform" ).serialize()
Потом добавляем в этот массив дополнительные данные - key/value - любым привычным для вас в JS способом
Ну и собственно отправляете AJAX post на сервер.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы