Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.06.2012, 21:57
Vit Vit вне форума
Аспирант
Отправить личное сообщение для Vit Посмотреть профиль Найти все сообщения от Vit
 
Регистрация: 11.01.2012
Сообщений: 56

Привязка данных к объекту
Всем доброго. Есть задача - привязать некий набор данных, представляемый собой текст с кирилицей и латиницей к ячейкам таблицы.

Смысл в том, чтоб при кликах по ячейкам таблицы в некий DIV выводился привязанный к кликнутым ячеям текст.
На сервере делаю так:
Код:
'<td note="'+Переменка содержащая привязываемый текст+'">'+IntToStr(d)+'</td>';
(Сервер мной написаный)
Но браузер (FireFox) отображает это неверно, ибо в самом тексте могут присутствовать любые символы в том числе " скажем.

Первая мысль - кодировать текст, в то, что браузер не станет самостоятельно отображать. Например просто приводить текст в его HEX представление, а в JS наоборот раскодировать:
for(i=0;i<s.length;i+=2){
		 r+=String.fromCharCode(parseInt('0x'+s[i]+s[i+1]));
		};

Где s - строка с HEX значениями. Это работает, но выдает на страницу кракозяблики. (сама страница задана как content="text/html; charset=windows-1251"). Видимо раскодировка в UTF производится.

Отсюда первый вопрос: А как-то можно указать в какую кодировку переводить? Т.е. получить нормальную кириллицу?

Пока отложив это пробую следующий вариант:
Код:
'<td note="'+ URLEncode(Days[d].DayContent)+'">'+IntToStr(d)+'</td>'
А в скрипте клика соответственно:
s=me.getAttribute('note');
		...innerHTML=decodeURIComponent(s);

Где me - указывает на кликнутую ячейку.
Однако получаю ошибку
malformed URI sequence
И если честно пока нечетко понимаю что она означает.

Отсюда второй вопрос: Если делать так, то что это за ошибка, и как ее устранить?

И на последок Вопрос номер три: А как вообще стоит делать такие вещи? Страница должна стать автономной - все что нужно, должно быть заранее подгруженно в нее, а уже выборка соответственно содержимого, которое нужно вытянуть в данный момент времени по некому событию, должна управляться на стороне клиента. Т.е. абсолютно без лишнего запроса к серверу. Сервер дожен отработать один единственный раз, дальше вся работа должна лечь на клиента.
Ответить с цитированием
  #2 (permalink)  
Старый 19.06.2012, 00:04
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Я пока не понял полностью 3 вопроса, но мне кажется, что использовать нестандартный атрибут для хранения данных, связанных элементами - не очень хорошая идея. Лучше пойти одним из следующих путей:
1) добавить свойство в каждый объект DOM, представляющий ячейку таблицы;
2) сделать обработчик клика замыканием, которое будет привязано к необходимой переменной;
3) вписать необходимое значение в сам обработчик клика на сервере.
Ответить с цитированием
  #3 (permalink)  
Старый 19.06.2012, 00:13
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Если вписывать произвольную строку в значение атрибута, то нужно экранировать чувствительные символы:
Код:
<      заменить на          &lt;
>                           &gt;
"                           &quot;
&                           &amp;
<HT>         	            & #9;        (без пробела)
<LF>                        & #10;       (без пробела)
<CR>                        & #13;       (без пробела)

Последний раз редактировалось oneguy, 19.06.2012 в 00:39.
Ответить с цитированием
  #4 (permalink)  
Старый 19.06.2012, 00:15
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

data свойства(атрибуты) вам в помощь
Ответить с цитированием
  #5 (permalink)  
Старый 19.06.2012, 00:20
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от oneguy
Я пока не понял полностью 3 вопроса, но мне кажется, что использовать нестандартный атрибут для хранения данных, связанных
Есть Опыт достаточно длительный опыт использования alt (не в картинках) и rel
Ответить с цитированием
  #6 (permalink)  
Старый 19.06.2012, 00:26
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Deff
Есть Опыт достаточно длительный опыт использования alt (не в картинках) и rel
все же не понимаю чем вам не угодил атрибут data-* ??? официальный атрибут, и валидность проходит.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #7 (permalink)  
Старый 19.06.2012, 00:32
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

devote,
Мну не помнит - но нарылсо(возможно не на data) в ИЕ - после этого юзал выше указанные
Ответить с цитированием
  #8 (permalink)  
Старый 19.06.2012, 12:42
Vit Vit вне форума
Аспирант
Отправить личное сообщение для Vit Посмотреть профиль Найти все сообщения от Vit
 
Регистрация: 11.01.2012
Сообщений: 56

Спасибо за инфу, приму к сведению, пока оставлю способ oneguy.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемма с отправкой данных на сервер deng22 jQuery 2 03.06.2012 14:40
Двойная Фильтрация данных таблицы David0707 Общие вопросы Javascript 0 19.03.2012 13:00
Изменение окраски строк таблицы, исходя из данных? Space-06 Events/DOM/Window 4 14.02.2012 21:32
jqGrid. локальная обработка данных DarkN jQuery 0 25.01.2011 23:55
Синхронный запрос данных по AJAX Shasoft AJAX и COMET 2 03.03.2009 14:07