Выход из данных jQuery, отправляемых по почте

Я использую jQuery.ajax, чтобы извлечь данные формы из страницы и отправить его в мою базу данных (через другую страницу PHP).

Информация формы собрана:

var X=$('#div1').val();
var Y=$('#div2').val();

Это используется для создания строки POST, т.е.

var data='varx='+X+'&vary='+Y;

Очевидно, это проблематично, если символ амперсанда используется. Что лучший метод должен выйти из переменных, особенно так, чтобы пользователь мог безопасно использовать амперсанд (и)?

Спасибо!

18
задан Matt 9 February 2010 в 19:21
поделиться

3 ответа

Лучше всего использовать объект для данных.

jQuery.post("yourScript.php", {
   varx: X,
   vary: Y
});

или

jQuery.ajax({
      url: "yourScript.php",         
      type: "POST",
      data: ({varx: X, vary: Y}),
      dataType: "text",
      success: function(msg){
         alert(msg);
      }
   }
);

Вы также можете использовать jQuery serialize () для получения данных формы в виде сериализованной строки запроса:

var data = jQuery(formSelector).serialize();

Метод .serialize () создает текстовую строку в стандартной кодировке URL {{ 1}} обозначение. Он работает с объектом jQuery , представляющим набор элементов формы . Элементы формы могут быть нескольких типов.

На мой взгляд, намного красивее: -)

24
ответ дан 30 November 2019 в 06:25
поделиться

Я мало что знаю о MMX, но, возможно, вам нужна инструкция PACKSSDW.

Команда PACKSSDW принимает два двойные слова в исходном операнде и два двойных слова в операнд назначения и преобразует их до четырех подписанных слов через насыщенность. Инструкция упаковывает эти четыре слова вместе и сохраняет результат в регистр MMX назначения.

(от http://webster.cs.ucr.edu/AoA/Windows/HTML/TheMMXInstructionSeta2.html )

Изменить: я только что понял, что это были регистры SSE. О, хорошо.

Редактирование: Я собираюсь заткнуться.

-121--3311397-

Существует (несколько) официальный вариант: jQuery.validator.format .

Поставляется с подключаемым модулем jQuery Validation 1.6 (по крайней мере).
Довольно похоже на Последовательностях .Формат , найденный в .NET.

Изменить Фиксированная разорванная ссылка.

-121--621913-

encodeURIComponent будет выполнять то, что вы ищете.

var X = encodeURIComponent($('#div1').val());
var Y = encodeURIComponent($('#div2').val());

При этом будут закодированы все потенциально небезопасные символы.

24
ответ дан 30 November 2019 в 06:25
поделиться

Вы можете использовать escape-функцию JavaScript

var data='varx='+escape(X)+'&vary='+escape(Y);
2
ответ дан 30 November 2019 в 06:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: