Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   загрузка из файла в ячейку поля (https://javascript.ru/forum/dom-window/5011-zagruzka-iz-fajjla-v-yachejjku-polya.html)

_dima_ 08.09.2009 00:55

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

PS топик должен был называться "загрузка текста из файла в ячейку таблицы"

Octane 08.09.2009 01:08

Вы просите готовый скрипт с нуля.

Это работа, и за нее обычно платят деньги.
Для таких сообщений предназначен раздел форума "Работа".

Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела.

Gvozd 08.09.2009 07:19

ajax

_dima_ 08.09.2009 16:11

перефразирую вопрос =)
есть таблица:
<html>
<head>
</head>

<body>
<table border="1">
	<tr>
		<td valign="top" width="820">
		<a href="index.htm" id="1">ссылка 1</a>
		<a href="index.htm" id="2">ссылка 2</a>
		<a href="index.htm" id="3">ссылка 3</a>
		</td>

		<div id="right">
		<td valign="top" height="231" width="171">
			<SCRIPT LANGUAGE="JavaScript">
		document.getElementById('1').onclick=function() {document.write("текст ссылки 1")}
		document.getElementById('2').onclick=function()	{document.write("текст ссылки 2")}
		document.getElementById('3').onclick=function()	{document.write("текст ссылки 3")}
		
		document.write("текст по умолчанию");
	</SCRIPT>

		</td>
		</div>
	</tr>
</table>

</body>
</html>


почему "текст по умолчанию" пишется где надо (в правой колонке), а текст, который появляется после нажатия на ссылку, появляется заместо всей страницы?

Gvozd 08.09.2009 17:05

потому что document.write пишет в поток только в случае еще не сформированной страницы
после события window.onload будет происходить перезапись документа
используйте свойство innerHTML нужного вам тега, для того чтобы переписать его содержимое
document.getElementById('qwe').innerHTML='новый текст';

_dima_ 08.09.2009 23:55

Gvozd, спасибо)

попробывал:
<html>
<head>
</head>
<body>
<table border="1">
	<tr>
		<td valign="top" width="500">
		<a href="index.htm" id="1">ссылка 1</a>
		<a href="index.htm" id="2">ссылка 2</a>
		<a href="index.htm" id="3">ссылка 3</a>
		</td>

		<td valign="top" width="500">
			<div id="right">
			текст по умолчанию
			</div>
		</td>
	</tr>
</table>
<SCRIPT LANGUAGE="JavaScript">
document.getElementById('1').onclick=function() {document.getElementById('right').innerHTML='текст ссылки 1';}
document.getElementById('2').onclick=function()	{document.write("текст ссылки 2");}
document.getElementById('3').onclick=function()	{document.write("текст ссылки 3");}
</SCRIPT>
</body>
</html>


в IE 8 при нажатии "ссылка 1" в правой колонке моргает надпись "текст ссылки 1" и все возвражается в состояние до нажатия. то есть так же пишется "текст по умолчанию"

Gvozd 09.09.2009 01:28

судя по всему, потому что у вас не отменяется действие по умолчанию у ссылки(переход по ссылке)
таким образом, после щелчка по ссылке, вы сперва видите новую надпись, а потом переходите на эту же страницу, и как результат видите снова старую, изначальную надпись
решается добавлением в обработчик события return false;
это отменяет действие по умолчанию, и по ссылке перехода не произойдет
PSв других оработчиках document.write() также стоит заменить на innerHTML

_dima_ 09.09.2009 07:06

Gvozd,
спасибо вам!
сегодня еще над загрузкой из файла подумаю. может как-то через jQuery получится... в принципе содержимое файла уже выводится, но, опять-таки, перезаписывая все остальное.

_dima_ 11.09.2009 11:11

сделал через iframe.
что-то типа
var IframeId= document.getElementById('iframe');
document.getElementById('TopMenuAboutCompany').onclick=function()
	{
	IframeId.src = "/html/TopMenu/AboutCompany.html";
	IframeId.height = "400";
	return false;
	}

_dima_ 11.09.2009 12:19

еще один вопрос назрел.
надо поменять цвет и надпись у ссылки. пытаюсь через:
document.getElementById('ИДСсылки').value = "&nbsp;- о компании&nbsp;&nbsp;"
но не получается...

B~Vladi 11.09.2009 15:05

У ссылки нет свойства value! Марш учить DOM!!!

_dima_ 15.09.2009 09:36

ребят, подскажите. не работает.
document.getElementById(id ссылки).style="color:#FF0000";

Riim 15.09.2009 09:37

document.getElementById(id ссылки).style.cssText = "color: #FF0000;";

_dima_ 20.09.2009 23:53

спасибо всем за советы =)
рассказываю, как я это реализовал... сделал через iframe. в этом коде в iframe загружаются html страницы, изменяется размер iframe (вдруг какая-то страница значительно больше размера iframe по умолчанию), и изменяется надпись и цвет (через стили) у активной ссылки (в моем случае у активной ссылки вместо "-" рисуется "+")
<html>
<head>
<script type="text/javascript" src="/js/LinkStyle.js"></script>



</head>

<body>
<a href="#" class="active" id="TopMenuAboutCompany" onclick="LinkStyle(this, 'TopMenuAboutCompany', '\/html\/TopMenu\/AboutCompany.html', '400', '&nbsp;+ о компании&nbsp;&nbsp; |')">&nbsp;+ о компании&nbsp;&nbsp; |</a>
<a href="#" id="TopMenuAboutProduction" onclick="LinkStyle(this, 'TopMenuAboutProduction', '\/html\/TopMenu\/AboutProduction.html', '400', '&nbsp;+ о продукции&nbsp;&nbsp; |')">&nbsp;- о продукции&nbsp;&nbsp; |</a>
<a href="#" id="TopMenuPartners" onclick="LinkStyle(this, 'TopMenuPartners', '\/html\/TopMenu\/Partners.html', '400', '&nbsp;+ партнеры&nbsp;&nbsp; |')">&nbsp;- партнеры&nbsp;&nbsp; |</a>
<a href="#" id="TopMenuContacts" onclick="LinkStyle(this, 'TopMenuContacts', '\/html\/TopMenu\/Contacts.html', '550', '&nbsp;+ контакты&nbsp;&nbsp; |')">&nbsp;- контакты&nbsp;&nbsp; |</a>
<a href="#" id="TopMenuInformation" onclick="LinkStyle(this, 'TopMenuInformation', '\/html\/TopMenu\/Information.html', '1450', '&nbsp;+ информация&nbsp;&nbsp; |')">&nbsp;- информация&nbsp;&nbsp; |</a>

<iframe src="/html/TopMenu/AboutCompany.html" width="744" height="400" frameborder=0 scrolling=no id="iframe" >
</iframe>

</body>
</html>


function LinkStyle(a, IdLink, IframeSrc, IframeSize, LinkText)
{//?, ИД ссылки; путь до загружаемого файла; размер фрэйма; надпись ссылки;
//верхнее меню. устанавливаем надписи к ссылкам по умолчанию.
document.getElementById('TopMenuAboutCompany').innerHTML='&nbsp;- о компании&nbsp;&nbsp; |'
document.getElementById('TopMenuAboutProduction').innerHTML='&nbsp;- о продукции&nbsp;&nbsp; |'
document.getElementById('TopMenuPartners').innerHTML='&nbsp;- партнеры&nbsp;&nbsp; |'
document.getElementById('TopMenuContacts').innerHTML='&nbsp;- контакты&nbsp;&nbsp; |'
document.getElementById('TopMenuInformation').innerHTML='&nbsp;- информация&nbsp;&nbsp; |'

var IframeId = document.getElementById('iframe'); //куда загружаем файл, открываемый по ссылке
var aa = document.getElementsByTagName('a');
for( i in aa )
    if( aa[i] != a && aa[i].className == 'active' )
    	{aa[i].className = '';}
	else {a.className = 'active';
		IframeId.src = IframeSrc; //устанавливаем путь до файла, который загружаем в iframe;
		IframeId.height = IframeSize; //устанавливаем размер iframe;
		document.getElementById(IdLink).innerHTML = LinkText; //надпись ссылки
		}
return false;
}


PS может и не идеально, но зато мое детище))) этакой недоношенный, кривобокий рахитик...
критика приветствуется

B~Vladi 21.09.2009 10:33

Цитата:

Сообщение от _dima_
но зато мое детище

Вот за енто я и люблю программирование...

_dima_ 21.09.2009 21:59

Вложений: 2
на картинке "1_подбор.JPG" там где несколько параметров и кнопка "подобрать" - это ifame.
на картинке "2_вывод.JPG" - изображены таблицы с параметрами, которые выводятся в тот же ifame.
используется база mysql, и, соответственно, php.
вопрос: надо в соответствии со значением "наденно аккумуляторов" ( $num_results = mysql_num_rows (mysql_query($query)) ) устанавливать размер iframe.

B~Vladi 22.09.2009 10:42

Цитата:

Сообщение от _dima_
вопрос: надо в соответствии со значением "наденно аккумуляторов" ( $num_results = mysql_num_rows (mysql_query($query)) ) устанавливать размер iframe.

Это не вопрос, а задача, которую вы предлагаете решить нам за вас:)

Gozar 22.09.2009 12:49

размер iframe устанавливается также как и любой другой размер блокового элемента html. У iframe есть ширина и высота.
Определите размер одной строки (результата) умножте на ваш $num_results и получите приблизительную высоту Вашего ифрейма.

дальше:
document.getElementById("iframe_id").style.height = height_iframe

_dima_ 22.09.2009 15:48

сначала написал, потом подумал...
буду эксперементировать. по результатам отпишусь.

_dima_ 23.09.2009 00:10

а чего вы мне не сказали, что есть вот такое вот замечательное средство для автоматического урегулирования размера iframe?
parent.document.getElementById("iframe").style.height = document.body.scrollHeight

Riim 23.09.2009 08:54

Мы ждали когда ты сам догадаешься. 'px' добавь.


Часовой пояс GMT +3, время: 13:32.