отправка формы и переменных вместе через jquery - PullRequest
0 голосов
/ 12 ноября 2011

Я использую 2 типа отправки.

Существует $ .post

$.post('servers_side.php', { var1: var1, var2:var2},
function(result) 
{
some code...
});

, который отправляет отдельные переменные в сценарий на стороне сервера.

И естьПлагин AjaxSubmit, который отправляет всю форму

$('#form').ajaxSubmit({success: function(result)
{
some code...
}
});

Но теперь у меня есть следующая задача, скажем, у меня есть форма и несколько переменных, которые я должен отправить одновременно.

Так жечто можно отправить форму + несколько переменных вместе?

Ответы [ 2 ]

2 голосов
/ 12 ноября 2011

Обновление

А вот как вы можете отправить:

var Vars = {var1: var1, var2:var2};
var varsData = $.param(Vars);

// form data
var formData = $('#formID').serialize();

var data = varsData + '&' + formData;

$.ajax({
  type: 'POST',
  url: 'servers_side.php',
  data: data,
  success: function(res){ alert (res) }
})

Вы можете использовать jQuery.param() для преобразования массива или объекта вURL-адрес Париж.Вам также может понадобиться использовать jQuery.serialize() для преобразования данных формы в имя-значение Париж.Вот как вы можете это сделать:

var Vars = {var1: var1, var2:var2};
var varsData = $.param(Vars);

// form data
var formData = $('#formID').serialize();

var data = varsData + '&' + formData;

Теперь data содержит все данные ваших пользовательских переменных и элементов формы, которые вы можете отправить в ajax-запросе.

0 голосов
/ 12 ноября 2011

Ну, это возможно, но код может выглядеть грязно. В качестве передового опыта следует добавить несколько hidden полей

<form>
   .
   .
   .
   <input type="hidden" name="var1" id="var1" />
   <input type="hidden" name="var2" id="var2" />
   <input type="hidden" name="var3" id="var3" />
   .
   .
   .
</form>

И используйте этот JavaScript, чтобы установить значения для этих hidden полей

$("#var1").val("some data 1");
$("#var2").val("some data 2");
$("#var3").val("some data 3");

И вы можете продолжить с существующим $.post() кодом

...