Как мне избежать «+» в данных, которые я посылаю через AJAX в Mootools? - PullRequest
1 голос
/ 30 сентября 2010

Я строил простой веб-калькулятор, который берет уравнения из HTML-формы, оценивает их на сервере с помощью PHP и отправляет результат обратно.

Я использую Mootools для отправки данных через req.send Операция AJAX.

Но каждый раз, когда в уравнении появляется знак «+», он не виден в данных POST, которые получает сервер.

Любые идеи, почему это происходит и какЯ могу обойти это?

Например:

10 + 12 в HTML-форме отображается как 10 12 в данных $_POST.

Команда отправки Mootools IЯ использую что-то вроде этого с

<textarea name="equationTextArea">10+12</textarea>

req.send("eqn="+$('equationTextArea').value);

После отправки я вижу $_REQUEST['eqn'] как 10 12.

Ответы [ 3 ]

4 голосов
/ 30 сентября 2010

Попробуйте использовать функцию encodeURIComponent над своим текстовым значением. Это, ну .. Ури кодирует ваш текст.

1 голос
/ 30 сентября 2010

Установите кодировку вашей формы на multipart/form-data - это альтернатива по умолчанию application/x-www-form-urlencoded и не кодирует пробел в знак плюс +.

Пример из ссылки на w3.org :

<form action="http://example.com/cgi/handle"
   enctype="multipart/form-data"
   method="post">
0 голосов
/ 30 сентября 2010

Ваш текст, скорее всего, должен быть URLEncoded .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...