[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Косяки с браузером.
ApuktaChehov
Всем привет.

Забавная проблема, но все же проблема.

Делаю склад.
Сделал импорт БД из 1C в мускул. Все хорошо.
Теперь загружаю данные в селект, для выбора юезром чего надо ему.

Юзер выбрал, жмет сохранить, а скрипт в ответ говорить, что позиция номенклатуры, которую выбрал юзер нет в общем списке номенклатуры.
Я в шоке, ведь список для выбора грузиться именно из этого общего списка номенклатуры. Начал копать, с самого начала, с формирования списка.

И вот что понял. В БД, в некоторых позициях между словами имеются 2 пробела.
Эти 2 пробела, правильно загружаются в селект, фаербагом проверил, оба присутствуют, но браузер, при отображении этого самого селекта один из пробелов режет. В итоге, некоторые строки, что юезр выбирает из списка не совпадают с тем, что в бд. И появляется ошибка.

Вот сижу думаю, что с этим можно сделать.

Есть идеи?

Спасибо!



Спустя 2 минуты, 55 секунд (21.09.2011 - 10:32) kirik написал(а):
Не доверяй тому что вставляется между тегами. Определяй свойство value для каждого option:
<select>
<option
value="test test">test test</option>
...

Спустя 38 секунд (21.09.2011 - 10:33) ApuktaChehov написал(а):
Как вариант, поправить бд. А в будущем при импорте, регулярками резать 1 пробел там, где их 2.
Но что если в будущем, захотят совсем тесно связать 1С и этот склад?
Сейчас они только номенклатурой связаны, да и то пассивно.

Спустя 1 минута, 25 секунд (21.09.2011 - 10:35) ApuktaChehov написал(а):
У меня в value вставляет id номенклатуры. А юзер должен видеть имя. И именно имя он отправляет. Конечно, можно постараться, что бы id того, что юзер выбрал отправлять на сервер, но это сложнее. Хотя выход.

Эх.. ладно, сейчас чего-нибудь придумаю.

Хотя, а на кой хрен я передаю этот id в value?

Сейчас вспомню, нафиг я это сделал.

Спустя 4 минуты, 52 секунды (21.09.2011 - 10:39) ApuktaChehov написал(а):
Нет, с value не прокатило, по крайней мере фаерфокс все равно режет. Это уже не прокатит.

Спустя 9 минут, 19 секунд (21.09.2011 - 10:49) Michael написал(а):
ну вообще конечно айдишки туда-сюда гоняются. Никогда не замечал чтобы как то данные искажались в value, что то у тебя другое...

Спустя 12 минут, 28 секунд (21.09.2011 - 11:01) ApuktaChehov написал(а):
Как это другое? Вот пример, в архиве картинка.

Как видно, в фаербаге 2 пробела, в самом же списке только один.

С айдишниками сложнее. Хотя и решаемо.

Спустя 2 минуты, 59 секунд (21.09.2011 - 11:04) ApuktaChehov написал(а):
Эх. По ходу придется писать костыль к скрипту формирования списка.
Отстой! Но все равно, спасибо всем большое!

Спустя 8 секунд (21.09.2011 - 11:04) redreem написал(а):
а если эти пробелы заменить на &nbsp;&nbsp;?

Спустя 2 минуты, 17 секунд (21.09.2011 - 11:07) ApuktaChehov написал(а):
redreem - была идея. Нужно при формировании списка заменять пробелы, а у клиента возвращать все обратно. Только беда в том, что их все равно в селект вставлять.

Спустя 47 минут, 43 секунды (21.09.2011 - 11:54) Winston написал(а):
ApuktaChehov
А, что если сделать так
UPDATE `table` SET `name` = TRIM(`name`)

Должны убраться пробелы в базе ?

Спустя 9 минут, 1 секунда (21.09.2011 - 12:03) ApuktaChehov написал(а):
Winston - пробелы между словами в одной строке, а не в конце. TRIM не поможет

Спустя 3 минуты, 32 секунды (21.09.2011 - 12:07) kirik написал(а):
ApuktaChehov
Погодь, если у тебя всё по ID, причём тут пробелы?

Спустя 11 минут, 32 секунды (21.09.2011 - 12:18) ApuktaChehov написал(а):
kirik - нет, не по id. Селект динамический, его значение при выборе юзером, вставляется в интуп. Юзеру нужно видеть название того, что он выбрал, а не id. И это название вставляется в интпут и передается на сервер.

ID можно использовать, но для этого, мне придется вставлять на страницу еще один скрытый инпут и в него уже вставлять ID, который после уйдет на сервер.
Беда в том, что этот скрипт(формирования селекта) очень много где используется.
И его изменения могут повлечь за собой кучу проблем. По этому я не рассматриваю этот вариант.

В итоге я решил поправить БД. Уже сделал, все заработало как надо.

Спустя 2 минуты, 11 секунд (21.09.2011 - 12:21) kirik написал(а):
ApuktaChehov
Ясно. Ну если так, всё правильно. Только не забудь убирать пробелы, когда добавляется запись.

Спустя 1 минута, 40 секунд (21.09.2011 - 12:22) ApuktaChehov написал(а):
kirik - спасибо, постараюсь не забыть.


Всем огромное спасибо!


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.