Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
33 / 4 / 1
Регистрация: 29.05.2014
Сообщений: 144

Кодировка данных при считывании их из input методом serialize() jQuery

23.12.2015, 00:25. Показов 2700. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Ситуация следующая: пытаюсь организовать обновление данных в базе. Для этого получаю поиском в форму с input данные из базы на определённого человека (ФИО, Пол и т.п.). Меняю эти данные в полях формы. И при нажатии пункта меню li#update_client запускаю jquery. Получаю данные формы методом serialize(). И отправляю на сервер аяксом. Перед этим для проверки сейчас сделал вывод alert. Выводит абракадабру (скриншот ниже).

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
jQuery(document).ready(function(e) { //ОЖИДАНИЕ DOM
jQuery('li#update_client').dblclick(function() {
  var client_data=jQuery("#add_client_form").serialize();
  alert(client_data);
  $.ajax({
    type: "POST",
    url: "registration/update_clients.php",
    data: {"client_data": client_data},
    success: function(result){
      $('#add_client_status').html(result);
    }
  });
});
});//конец ожидания DOM


Подскажите, пожалуйста, в чём может быть дело?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.12.2015, 00:25
Ответы с готовыми решениями:

Кодировка данных при считывании из БД
Здравствуйте. Подскажите пожалуйста, я записываю строку в базу SQLite вот так mybase.ExecSQL('insert into NewTable (MYTEXT)...

Неверная кодировка при считывании из файла
Проблема такая, при считывание из файла идет кракозябра, как это исправитьsetlocale(LC_ALL, "rus"); FILE *fp; if(!(fp =...

Кодировка текста при считывании из файла
Уважаемые профи! При считывании из текстового файла кирилица превращается в кракозябру, подскажите как фиксануть.

9
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
23.12.2015, 00:50
Цитата Сообщение от Mothur Посмотреть сообщение
Выводит абракадабру
Это не абракадабра, а url-кодированная строка С этим ничего делать не надо. Полученные данные на сервере, если файлы у вас в кодировке utf-8, будут в нормальном виде.
1
33 / 4 / 1
Регистрация: 29.05.2014
Сообщений: 144
23.12.2015, 11:40  [ТС]
Lazy_Den, а как их получить?
Из php в jQuery понятно. Получаю json и поочерёдно вызываю нужные мне объекты массива.
А тут как?

Отправляю данные:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
jQuery('li#update_client').dblclick(function() {
  var client_data=jQuery("#add_client_form").serialize();
  $.ajax({
    type: "POST",
    url: "registration/update_clients.php",
    data: {"client_data": client_data},
    success: function(result){
      $('#add_client_status').html(result);
    },
    error: function(err){
      console.log(err);
    }
  });
});
Получаю и проверяю, вывожу то, что он прислал.

PHP
1
2
3
4
5
mb_internal_encoding("UTF-8");
if (isset($_POST['client_data'])) {
    $client_data=$_POST['client_data'];
    echo $client_data;
} else {echo "!!!"; exit();};
А возвращает мне он всё ту же абракадабру - url-кодированную строку.
0
Все элементарное - сложно
133 / 118 / 50
Регистрация: 14.04.2014
Сообщений: 509
23.12.2015, 14:02
urldecode, вам в руки
1
33 / 4 / 1
Регистрация: 29.05.2014
Сообщений: 144
23.12.2015, 18:27  [ТС]
mixenik,
PHP
1
$_POST['client_data']=urldecode($_POST['client_data']);
На выходе получаю строку:
id_clients=3376&surname=Петренко&name=Ир ина&middle_name=Леонидовна®istration_add ress=Минск, Улица такая-то 3-5&passport_number=АВ1111117&issue_date=2 000-01-01&issued_by=Минским РОВД&birth_year=1990&gender=1&phone_numb er=+375297775522&post_address=Не отправлять&client_note=Примечание к Петренко.

r на ® =))
Как с этим работать?
0
Все элементарное - сложно
133 / 118 / 50
Регистрация: 14.04.2014
Сообщений: 509
23.12.2015, 22:21
Лучший ответ Сообщение было отмечено Mothur как решение

Решение

если делаете serialize? то в data нужно передавать только client_data и на сервере отлавливать каждый параметр по отдельности, т.е. на сервре
PHP
1
2
$id_clients=$_POST['id_clients'];
$surname=$_POST['surname'];
и т.д.

Добавлено через 43 секунды
и urldecode будет ненужен
1
33 / 4 / 1
Регистрация: 29.05.2014
Сообщений: 144
23.12.2015, 22:29  [ТС]
mixenik,
т.е. нужно так:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
jQuery('li#update_client').dblclick(function() {
  var client_data=jQuery("#add_client_form").serialize();
  $.ajax({
    type: "POST",
    url: "registration/update_clients.php",
    data: {client_data},
    success: function(result){
      $('#add_client_status').html(result);
    },
    error: function(err){
      console.log(err);
    }
  });
});
И update_clients.php с двумя строчками, например
PHP
1
2
$id_clients=$_POST['id_clients'];
$surname=$_POST['surname'];

Если да, то ничего не работает. php выдаёт ошибку, что такого индекса не существут.

PHP
1
2
Undefined index: id_clients in C:\xampp\htdocs\registration\update_clients.php on line 3
Undefined index: surname in C:\xampp\htdocs\registration\update_clients.php on line 4
0
Все элементарное - сложно
133 / 118 / 50
Регистрация: 14.04.2014
Сообщений: 509
23.12.2015, 22:34
Лучший ответ Сообщение было отмечено Mothur как решение

Решение

data: client_data
1
33 / 4 / 1
Регистрация: 29.05.2014
Сообщений: 144
23.12.2015, 22:37  [ТС]
mixenik, да, заработало. Спасибо большое. В который раз выручаете невежду)
В таком случае, что решают эти скобки - {} ?
0
Все элементарное - сложно
133 / 118 / 50
Регистрация: 14.04.2014
Сообщений: 509
23.12.2015, 22:44
в js {} - это пустой объект, когда вы передаете jquery {client_data: client_data}, он запихивает этот объект в body Post-зароса, в таком же виде. При сериализации же формируется query - строка того вида, что приходила на сервер, ее вместо data можно было прибавить к url, например так url: "registration/update_clients.php" + "?" + cliant_data. По сути jquery делает то же самое, когда вы в data передаете строку. Увидеть, что это так можно посмотрев в консоли браузера отправленный запрос. Хотя, может я и ошибаюсь =)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.12.2015, 22:44
Помогаю со студенческими работами здесь

Кодировка при передаче данных методом GET
Всем привет! Есть проблема следующего рода... Вписываю в адресную строку браузера: http://prime/qwe.php?text=привет qwe.php: ...

Неправильная кодировка при считывании кирилицы из текстового файла
У меня есть код для считывания текста из файла... если в файле русский язык то он выдает непонятные символы... Объясните пожалуйста что не...

.serialize() с input без name
$( "form" ).serialize() дает только input, textarea и select у которых есть name, если input находится в form, name у него нет, я никак не...

.serialize() и input:file
Добрых вечеров!) Такая проблемка. Как можно передать input file в ajax? Знаю, что это вроде бы нельзя. Но как тогда быть?) Необходимо...

jQuery Input Mask не работает валидация данных
Народ подскажите вот еще что, может слышал про такую библиотеку jQuery Input Mask. Я в jQuery вообще несилен все делаю как на этом сайте...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru