2015-05-26 2 views
1

У меня возникли проблемы с сценарием jquery для отправки данных в виде сериализованной формы вместе с измененной переменной. Я попробовал несколько разных методов, но добавленная переменная не публикуется.Проводка данных Ajax с дополнительной переменной

Я пробовал несколько методов, лучшее, что я думаю, используя jquery.param(), однако он не пропускает переменное сообщение.

// Code the input (message) 
      var message = $('textarea[name="content"]').html($('#emailbody').code()); 


       // Submit the form using AJAX. 
       $.ajax({ 
        type: 'POST', 
        url: 'mailer.php', 
        data: $(form).serialize()+$.param(message), 
       }) 

Я предполагаю, что мой синтаксис для передачи переменной неверен. Какие-нибудь советы?

Спасибо, Найджел

+0

Что такое '.code()' в '$ ('# emailbody'). Code()'. –

ответ

3

Если текстовое поле с именем content находится внутри формы, то просто установите его значение и сериализовать форму

$('textarea[name="content"]').val($('#emailbody').code()); 
// Submit the form using AJAX. 
$.ajax({ 
    type: 'POST', 
    url: 'mailer.php', 
    data: $(form).serialize(), 
}) 

Иначе вы могли бы попробовать

// Submit the form using AJAX. 
$.ajax({ 
    type: 'POST', 
    url: 'mailer.php', 
    data: $(form).serialize() + '&content=' + encodeURIComponent($('#emailbody').code()), 
}) 
+0

спасибо. Текстовое поле находится в одной и той же форме, однако оно закодировано, поэтому мне пришлось его модифицировать, прежде чем повторно добавить его в форму (это вкладка summernote.js) – npasco

+0

@npasco в этом случае нет необходимости использовать любой из них .. см. http://jsfiddle.net/arunpjohny/457dr535/3/ –

+0

hmmm ... Я пробовал это, однако результирующая переменная POST показывает html-код. – npasco

0

Вы можете попробовать:

data : $(form).serialize() + '&' + $.param(message) 
0

Там должно быть простое решение вашей проблемы, как показано ниже:

  1. Есть одно скрытое поле внутри элемента. 2. Перед отправкой вашей формы присвойте значение переменной скрытому полю, как показано ниже:

    $ ('# HiddenFieldIdHere'). Val (variablevalue);

  2. Затем выполните вызов ajax, как и вы, без добавления значения переменной.

+0

Хорошая идея, похоже, выполняет эту работу ... однако, полученный POST - это «объект объекта» ... любые идеи? – npasco

0
var message = $('#form_id').serialize(); 

$ .ajax ({ URL: "mailer.php", типа: 'POST', данные: сообщения, успех: функция (данные) { $ ("# form_result ") .html (данные); } });

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