При клике менять значение в ячейке таблицы
Перед мной стоит задача... я вывожу массив данных в таблицу. Если длина переменой $a больше 5 символов тогда я обрезаю это значение до 5 (при этом сохраняю старое значение переменой $a в переменую $b). Теперь у меня в таблице выводится в ячейках подстрока переменой. А мне нужно сделать так что бы при клике на эту ячейку уже выводилась переменая $b(где хранится первоначальное значение). Я в JS совсем новичек, так что буду премного благодарен моему спасителю.
|
т.е если я вас правильно понял вам нужно что б при клике на ячейку выводилось полное значение переменной?
если да,то примерно обьясню алгоритм: 1.к нужной ячейке нужно привязать событие onclick="myFunc(this);"//вызов любой вашей функции 2.вам нужно 2 переменных , сокращенный текст (miniText) и полный (FullText). 3. выводить в таблицу вам нужно miniText , а при клике свойстов display делать none (для miniText),а для FullText ставить inline (по умолчанию у FullText должно стоять none). Надеюсь обьяснил понятно. |
Я с JS почти не знаком и сильно в этом не нуждаюсь, но мне нужно реализовать это срочно....
<?php $a='123'; $b='321'; ?> <html> <body> <table> <tr> <td> <div id='item_table' onclick='myFunc(this);'> <script type="text/javascript"> function myFunc() var miniText='<?php echo "$a";?>'; var fullText='<?php echo "$b";?>'; this.item_table.miniText.display.inline; this.item_table.fullText.display.none; this.events.miniText.display.none; this.events.fullText.display.inline; </script> </div> </td> </tr> </table> </body> </html> Очень прошу вас исправьте меня. |
код выше бред!
а сразу сказать что вы пхп используете для заполенния таблицы 1.сначала засуньте 2 div блока в таблицу в один выводите $а во второй $b, 2.присвойте им 2 класса , допустим теже miniText и fullText. 3.занчения блок меняется так elem.style.block="inline"; 4.я так понимаю вы и таблицу генирируете в пхп цилке? если да то значить функция будет привязана к большому количеству ячеек, следует вопрос : как опредилить как поменят значение block именно для той по которой нажали , так: this.parentNode.getElementsByClassName(class) // вернет массив |
Цитата:
|
Цитата:
if(typeof document.getElementsByClassName != 'function')AllClass=browserIE(class); else AllClass=document.getElementsByClassName(class); // ДЛЯ ИЕ вместо document.getElementsByClassName function browserIE(FindClass){ var Tagbod=document.getElementsByTagName('body')[0]; var allSpan=Tagbod.getElementsByTagName('*'); var arrElements=[]; for(var i=allSpan.length-1;i>=0;i--){ if(allSpan[i].className==FindClass){ arrElements.push(allSpan[i]); } } return arrElements; } а лутчше так if(typeof document.getElementsByClassName != 'function')alert("Удалите нафиг IE") else AllClass=document.getElementsByClassName(class); |
cyber,
Я знаю, как реализовать getElementByClassName в IE, и ни каких сосисок я вам не предлагал |
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 09:57. |