Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Вставка кода из другого файла


Автор: GIK 10.4.2009, 16:53
Всем привет! 
Задвал я этот вопрос уже, но так и неразобрался...
Можно ли вставить в  определенное место в коде, код из другого файла. 
Например есть теги TABLE:
<TABLE>
 
</TABLE>

и я хочу вставить в него данные из другого файла:

<TBODY>
 <TR><TD>...</TD></TR>
</TBODY>

или хотя бы установить какую нибудь точку в коде, куда вставляется другой код из другого файла.
Если есть какие нибудь варанты решения данной задачи, большая просьба если не влом объяснить по подробнее. 
СПАСИБО заранее.

Автор: bars80080 10.4.2009, 17:43
дык, если есть допустим 

Код

<div id="qw"></div>
то вставить можно 

Код

document.getElementById('qw').innerHTML = '<p>некоторый код</p>';

если таблица, то сложнее. можно также попытаться, надо только ухватиться за что-нибудь, т.к. если <table id="qw"> и воспользуешься предыдущим методом, то снесёшь всё что там было внутри

можно получить к примеру идентификатор какой-то строки:

Код

var tr = document.getElementById('qw').getElementsByTagName('tr')[2];
// потом в него вставить
tr.innerHTML = '<td>некоторый код</td>';

но не факт что заработает. есть специальные методы по генерированию строк и ячеек (insertRow, insertCell, creatElement('tr'), .apendChild(), insertBefore(x, y)). но что и как использовать зависит от конкретного кода, как ты его хочешь использовать, а описывать всё слишком долго

Автор: GIK 10.4.2009, 18:09
спасибо за совет! А как припоять данные из файла? Просто у меня куча страничек у них некоторые таблицы одинаковы, и чтобы мне не менять (при обновлении) каждый раз все странички, мне надо вытаскивать из одного места, желательно из файла .txt
 

Автор: bars80080 10.4.2009, 19:59
ну это вообще-то вся серверная сторона. для чего нужен пхп? чтобы из данных генерировать одну и туже страницу, но с разным содержимым

если нужно, чтобы без перезагрузки страницы, то ещё аякс надо будет почитать

Добавлено через 1 минуту и 6 секунд
озвучте, пожалуйста, задачу полностью, а то мне кажется вы не с той стороны на неё зашли

Автор: GIK 13.4.2009, 17:24
Есть одна проблема с innerHTML 
У меня все работает если строка "сплошная" напиример без проблем можно вставить вот так:

document.getElementById(f1).innerHTML="<TBODY><TR><TD height=20px>sdsdsd</TD></TR></TBODY>";
вот так :
document.getElementById(f1).innerHTML="
 <TBODY>
   <TR><TD height=20px>sdsdsd</TD>
   </TR>
</TBODY>";


Уже не работает. Можно конечно соеденить все, но для редактипрования это ну ОООчень не удобно, т.к. код  огромный...
Есть решение это проблемы с помошью JS ?

Автор: bars80080 13.4.2009, 17:45
конечно не работает. в javascript конец кода либо ; либо перевод строки

надо либо соединять с помощью конкатенации txt1 + txt2
либо просто подгружая откуда-то (насколько помню задача серверная), то там текст либо без перевода строк, либо при чтении из файла автоматизировать процесс, пущай сам раставляет "; в конце строки и txt += " в начале

Автор: GIK 14.4.2009, 14:52
Цитата

либо при чтении из файла автоматизировать процесс, пущай сам раставляет "; в конце строки и txt += " в начале 


па о подробнее можно?  smile 

Автор: bars80080 14.4.2009, 15:46
ну, в смысле. у тебя есть допустим такой код:

Код

<TBODY>
   <TR><TD height=20px>sdsdsd</TD>
   </TR>
</TBODY>

именно так, с переводами строк
когда мы считываем его на сервере из файла, то лучше это делать построчно

Код

$fp = fopen('file.txt', 'r');
echo 'vat html = "";';
while(!feof($fp)) {
    $txt = fgets($fp, 4096);
    // здесь обработка и отправка в браузер
    echo 'html += "' + $txt + '";'."\r\n";
}
fclose($fp);

echo 'document.getElementById(f1).innerHTML = html;';


\r\n - это перевод строки (обязательно в двойных кавычках), чтоб в браузере строчки не слиплись

Автор: GIK 14.4.2009, 17:08
ок, спасибо, щас разберусь smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)