Javascript.RU

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

При клике менять значение в ячейке таблицы
Перед мной стоит задача... я вывожу массив данных в таблицу. Если длина переменой $a больше 5 символов тогда я обрезаю это значение до 5 (при этом сохраняю старое значение переменой $a в переменую $b). Теперь у меня в таблице выводится в ячейках подстрока переменой. А мне нужно сделать так что бы при клике на эту ячейку уже выводилась переменая $b(где хранится первоначальное значение). Я в JS совсем новичек, так что буду премного благодарен моему спасителю.
Ответить с цитированием
  #2 (permalink)  
Старый 27.04.2012, 01:30
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

т.е если я вас правильно понял вам нужно что б при клике на ячейку выводилось полное значение переменной?
если да,то примерно обьясню алгоритм:
1.к нужной ячейке нужно привязать событие onclick="myFunc(this);"//вызов любой вашей функции
2.вам нужно 2 переменных , сокращенный текст (miniText) и полный (FullText).
3. выводить в таблицу вам нужно miniText , а при клике свойстов display делать none (для miniText),а для FullText ставить inline (по умолчанию у FullText должно стоять none).
Надеюсь обьяснил понятно.
Ответить с цитированием
  #3 (permalink)  
Старый 27.04.2012, 09:41
Новичок на форуме
Отправить личное сообщение для edmundantes Посмотреть профиль Найти все сообщения от edmundantes
 
Регистрация: 26.04.2012
Сообщений: 7

Я с 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>

Очень прошу вас исправьте меня.
Ответить с цитированием
  #4 (permalink)  
Старый 27.04.2012, 14:33
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

код выше бред!
а сразу сказать что вы пхп используете для заполенния таблицы
1.сначала засуньте 2 div блока в таблицу в один выводите $а во второй $b,
2.присвойте им 2 класса , допустим теже miniText и fullText.
3.занчения блок меняется так elem.style.block="inline";
4.я так понимаю вы и таблицу генирируете в пхп цилке?
если да то значить функция будет привязана к большому количеству ячеек, следует вопрос :
как опредилить как поменят значение block именно для той по которой нажали , так:
this.parentNode.getElementsByClassName(class) // вернет массив
Ответить с цитированием
  #5 (permalink)  
Старый 27.04.2012, 16:21
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от cyber
this.parentNode.getElementsByClassName(class) // вернет массив
Не факт, что вообще что-то вернёт (привет от IE )
Ответить с цитированием
  #6 (permalink)  
Старый 27.04.2012, 17:06
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от Раед Посмотреть сообщение
Не факт, что вообще что-то вернёт (привет от IE )
напугал кота сосиской
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, 27.04.2012 в 17:13.
Ответить с цитированием
  #7 (permalink)  
Старый 27.04.2012, 17:14
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

cyber,
Я знаю, как реализовать getElementByClassName в IE, и ни каких сосисок я вам не предлагал
Ответить с цитированием
  #8 (permalink)  
Старый 27.04.2012, 17:15
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от Раед Посмотреть сообщение
cyber,
Я знаю, как реализовать getElementByClassName в IE, и ни каких сосисок я вам не предлагал
и шуток не воспринимаете
Ответить с цитированием
  #9 (permalink)  
Старый 27.04.2012, 17:26
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от cyber
и шуток не воспринимаете
Судя по всему, вы тоже
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
копирование в Буфер при клике на картинку Павел Общие вопросы Javascript 7 14.07.2013 00:51
Смена id при клике Nestor Общие вопросы Javascript 6 04.03.2009 19:10
Dojo может подгружать информацию из пунктов меню только при клике на выбранный пункт? vlad275 Dojo toolkit 0 30.10.2008 15:56
При первом клике список не раскрывается. lancer Элементы интерфейса 1 30.03.2008 17:24