2011-12-13 2 views
1

Я вставляю форму с AJAX, и я использую: $('#form').serialize(), чтобы получить все входные данные и отправить их в insert.php.

Проблема в том, что символы, подобные á, становятся %A9 и т.

Как я могу предотвратить это, прежде чем отправлять его или как получить правильные символы, когда я получаю его через $ _POST, чтобы я мог правильно вставить их в свою базу данных?

EDIT -----

Btw: та же форма, без AJAX, просто действие = "POST" в ОДНОМ insert.php вставляет правильно, так что проблема исключительно с сериализации() Мессинг в HTML.

+0

нет, я читаю об этом прямо сейчас. Я действительно не знаю, как применить его, кстати, я могу легко вставить вещи в базу данных. Единственная проблема, кажется, когда я использую функцию .serialize(), но у меня нет другого способа вставить в БД, если я не остановлю использование AJAX. – lisovaccaro

ответ

1

JQuery serialize() Сериализуется как UTF-8. Таким образом, á становится правильной кодировкой UTF-8 %c3%a1. Попробуйте использовать $_REQUEST, поскольку он уже декодирован в соответствии с документацией php. here

1

Заключительный шаг, который нужно сделать, это декодировать в файле PHP, как это:

$ = utf8_decode Новичок ($ _ POST [ 'Номбр']);

Я использую, чтобы объединить utf8_decode() с htmlspecialchars() перед отправкой ДАННЫЕ в базу данных:

$ nombres = utf8_decode (htmlspecialchars ($ _ POST [ 'nombres']));