jQuery: ajax POST с HTML-сущностями - PullRequest
       10

jQuery: ajax POST с HTML-сущностями

1 голос
/ 05 августа 2010

Я отправляю формы с помощью jQuery ajax & $ (this) .serialize в php & database, и он отлично работает. Теперь у меня есть ситуация, когда я не могу использовать сериализованную форму, но вместо этого генерирую строку из разных полей ввода, и проблема в том, что в процессе она теряет некоторые сущности URL.

например, "& phone = + 358123456789" получается "& phone = 358123456789", теряя символ плюса и заканчивая пробелом в базе данных. "& phone =% 2B358123456789" работает нормально, хотя.

так как может быть много других символов, кроме "+", которые могут быть потеряны, поэтому я спрашиваю, есть ли функция, похожая на htmlentities php , которая будет преобразовывать строку? Я безуспешно пробовал javascript escape () и unescape () и вмешивался в .text () & .html () jquery, но это плохо кончилось.

Ответы [ 2 ]

5 голосов
/ 05 августа 2010

используйте encodeURIComponent в вашей строке данных.

2 голосов
/ 05 августа 2010

Вы по-прежнему можете передавать данные как объект вашим методам $.ajax() (или AJAX ), например:

$.ajax({
  url: 'myPage.php',
  type: 'POST',
  data: { phone: $("#phone").val(),
          other: $("#other").val() }
});

Вы просто передаете объект { param: value, param2: value }, в который вы положили бы .serialize() раньше. Этот метод будет вызывать encodeURIComponent() внутри, поскольку это то, что $.param(), который он использует, делает:)

...