У меня есть действительно простая форма с текстовым полем и кнопкой, и моя цель состоит в том, чтобы асинхронный запрос (jQuery: $ .ajax) отправил текст на сервер (PHP / mysql a la Joomla), чтобы он мог быть добавленным в таблицу базы данных.
Вот javascript, который отправляет данные от клиента:
var value= $('#myvalue').val();
$.ajax( {
type: "POST",
url: "/administrator/index.php",
data: { option: "com_mycomponent",
task: "enterValue",
thevalue: value,
format: "raw"},
dataType: "text",
success: reportSavedValue
} );
Проблема возникает, когда пользователь вводит текст с пробелом в нем. Переменная $ _POST, которую я получаю, удаляет все пробелы, поэтому, если пользователь вводит « Эта строка имеет пробелы », сервер получает значение « Thisstringhasspaces ».
Я гуглил и нашел много ссылок, которые мне нужно использовать encodeURIComponent . Итак, я попробовал, но теперь значение, которое я получаю из $ _POST, равно " This20string20has20spaces ".
Так что, похоже, он кодирует его так, как ожидал бы I , только удаляя знаки процента вместо пробелов и оставляя шестнадцатеричные числа.
Я действительно запутался. Похоже, что такого рода вопросы задают и отвечают везде в сети, и везде encodeURIComponent приветствуется как серебряная пуля. Но, видимо, я борюсь с другой породой ликантропа. У кого-нибудь есть предложения?