При клике менять значение в ячейке таблицы
Перед мной стоит задача... я вывожу массив данных в таблицу. Если длина переменой $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, время: 11:37. |