Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Динамическая Table
Форум программистов > Интернет и сети > Web-программирование > HTML, CSS, XML, JavaScript
Rjkz
Здравствуйте. Пожайлуста подскажите можно каким либо оброзом создовать динамические таблицы,
не используя циклы, и с последуещией кариктеровкой количества строк и столбцов, чтоб можно было даже в середине вставлять и значения все остальные сохранялись? wink.gif
sax_ol
Собственно цыклы к динамическому созданию таблицы имеют отношение - "постольку - поскольку" и не более.
Vovochka
Можешь попробовать разобраться с этой табличкой.
http://demos.openrico.org/livegrid

Можешь сюда глянуть за инфой:
http://www.mredkj.com/tutorials/tableaddcolumn.html
http://www.w3schools.com/htmldom/dom_obj_table.asp
Rjkz
Спасибо всем кто отвечал, информация довольно полная и позновательная, так что сообщаю что все кто когда либо будут читать эту тему, смотрите по сылкам , там есть всё что нужно. wink.gif
Rjkz
Извените но похоже я рано закрыл тему, добовлять в последуюещем строки и столбцы я научился, осталось не решоным как создать таблицу нужной размерности,,? одной функцией без циклов вида

S='<TR height=3px>';

for(var i=1; i<=150; i++)
S+='<TD>';

for(var k=1; k<=150; k++)
TS+=S;

этот способ хоть и быстрее работает чем

for(var i=1; i<=150; i++)
{
S+='<TR>';
for(var k=1; k<=150; k++)
{
S+='<TD>';
}
}
TS=S;
всеровно не годиться . Подскажите способ rolleyes.gif
Vovochka
Боже мой...
Ты зачем HTML код своими руками гинеришь??? Надеюсь это только пример и ты так не поступаешь.

По теме: Если размерность известна. то пиши разверни циклы в код ;-D
Да зачем тебе отказываться от циклов? Без них же никуда. Объясни.

Код
var tbl = document.createElement('Table');
tbl.appendChild(document.createElement('tBody'));
tbody = tbl.tBodies[0];
for (i=0; i<5; i++) {
  var row = tbody.insertRow(i);
  for (j=0; j<3; j++) {
    var cell = row.insertCell(j);
  }
}
document.getElementById('div_with_table').appendChild(tbl);
Rjkz
Идея выши нормальная чтоб добовлять строки и столбцы insertRow и insertCells , сразу точно сказать не могу надо проверять но можно вроде оптимизировать и будет работать быстрее для больших таблиц на странице,, если делать как цикл в цикле как показанно то получаеться например если таблица пять на пять то это 5*5 получаеться 25 тактов, а если сночало добавить например в цикле пять столбцов а потом пять строк то получаеться 5+5 равно десять тактов, но надо проверять и тот и тот вариант на производительность! а ваши мнения??? rolleyes.gif
Vovochka
Какие у тебя объёмы. коль ты так гонишься за производительностью? Десятком миллисекунд медленнее/быстрее.
Но что-то мне и самому стало интересно, насколько манипуляции с DOMом быстрее/медленнее, чем конечный парсинг сгинеренного HTML кода smile.gif

Будут результаты. поделитесь wink.gif
Rjkz
Обём таблици хотябы такой как в ЭКСЕЛЕ это одно
но будет вообще база данных,, динамически подкачиваемая в маленькую таблицу из файла-это другое

Мини офис под ИЕ! для собственных нужд, а в последующем может и в интернет

Vovochka то что ты сылки довал на создатели документов в интернет что то вроде того же но не так как у них,,,документы будут сохраняться на компьторе пользователя, просто работать с ними нужно будет с помощью того что я делаю счас ph34r.gif , а занемаюсь я этим просто для своего развлечения,,меня программирование раслобляет,я отдыхаю когда пишу проги и получаеться задуманное biggrin.gif
Vovochka
Это конечно хорошо, но почему бы тогда не писать что-нибудь достойное? Зачем извращаться? Офис на JavaScriptе ты не напишешь. конечно получишь пачку експириенса. но время убъешь впустую.
http://forum.codeby.net/topic9686.html - Может возмешься? wink.gif
Rjkz
Здрасте!
Vovochka
var tbl = document.createElement('Table'); это что?, а
var abc = document.createElement('Div'); можно делать?
может знаеш как мне в функции создать Div назначить ему <style>
создать на нём табличку нужной размерности а потом с помощью другой функцими показывать и прятать его? а то что ты мне сылку дал я не шарю там , и тема давнишния!
Нужен масив Div-ов с табличками ну вот ещё мне надо подумать как эти таблички данными заполнять ?? ну подкинть чо нить ещё для размышления smile.gif
Vovochka
Цитата(Rjkz @ 5:02:2008, 08:48 )
var tbl = document.createElement('Table'); это что?, а
var abc = document.createElement('Div'); можно делать?
*

Да, так делать можно. Функция используется для создания любых тегов.
Цитата(Rjkz @ 5:02:2008, 08:48 )
может знаеш как мне в функции создать Div назначить ему <style>
*

Код
var div = document.createElement('DIV');
div.className = 'my_class'; // Назначаем элементу CSS класс
div.style.display = 'none'; // Скрываем элемент через стили.

Цитата(Rjkz @ 5:02:2008, 08:48 )
ну подкинть чо нить ещё для размышления smile.gif
*

1) google: javascript DOM
2) Может стоит выбрать фреймворк? Prototype, jQuery, mootools
Rjkz
{
var div = document.createElement('DIV');

div.style.position = 'absolute';
div.style.zindex = '1';
div.style.padding = '3';
div.style.FontSize = '2pt';
div.style.pixelLeft = '0';
div.style.pixelTop = '0' ;
div.style.width = '100';
div.style.height = '100';
div.style.backgroundColor = 'Red';

document.appendChild(div);

div.innerHTML = 'Hello Word';

div.style.display='block';

}

и не чего??
Vovochka
document.appendChild(div);

Ну зачем сразу спрашивать? Почему не посмотреть на ошибки. которые выдает браузер?
sax_ol
Для: Rjkz
Код надо оформлять соответственно, неужели это непосильная задача для вас?
Rjkz
код который я выши напичатал у меня работает без ошибок и броузер не чего не пишит ,,только и и панельки не появляеться,,ну исправте как там нужно имеенно в том коде что работало blink.gif
Sandr
Вам же сказали выше, что у документа нет метода appendChild...

Надо так:

document.body.appendChild(div);
Rjkz
function Create_Div()
{
var div = document.createElement('DIV');

div.style.display='block';

div.style.position = 'absolute';
div.style.zindex = '1';
div.style.padding = '3';
div.style.FontSize = '2pt';
div.style.pixelLeft = '100';
div.style.pixelTop = '100' ;
div.style.width = '100';
div.style.height = '100';
div.style.backgroundColor = 'Red';

document.body.appendChild(div);
div.innerHTML = 'Hello Word Pipl';
}

Рабочая функция !

интересно если так сделать ph34r.gif blink.gif
код поместить в одельный файл name.js ,а
var вынести за пределы функции

<script>

var div = new createArray(); ? не знаю обезательно здесь количество в скобках указывать ?
k=0; ? без индекса в скобках будет масив динамическим ?

function Create_Div()
{
document.createElement('DIV');

div[k].style.display='block';

div[k].style.position = 'absolute';
div[k].style.zindex = '1';
div[k].style.padding = '3';
div[k].style.FontSize = '2pt';
div[k].style.pixelLeft = '100';
div[k].style.pixelTop = '100' ;
div[k].style.width = '100';
div[k].style.height = '100';
div[k].style.backgroundColor = 'Red';

document.body.appendChild(div[k]);
div.innerHTML = 'Hello Word Pipl';
k++
}

function GetZIndex(i)
{
return div[i].style.zindex вернёт Zindex Div-а по индексу, а если не сущиствует с таким индексом?
}
</script>

Подскажите кто сталкивался ??? wink.gif

Извените -Sory
строчку не правильно записал
div[k] = document.createElement('DIV')
sax_ol
Для: Rjkz
Вам что, никак не доходит мой предыдущий вопрос/замечание?
Rjkz
Для: sax_ol
я не пойму как соответсвенно код нудно оформлять?
sax_ol
Для: Rjkz
вот так
Код
тут соответственно оформленный код
Rjkz
Для: Vovochka
и кто следит за темой.

Возращаясь к теме 5 х 5 = 25 или 5 + 5 =10 попробывал на том что у меня уже было написано придлогаю оценить самому только не запускай одновременно лучше по очереди а то система повиснуть может в обеих вариантах создаю таблички 100 х 100 , сразу скажу 200 х 500 у меня на компе уже не создалась не хватило памяти (виртуальной) biggrin.gif , ну вот собственно сылки

http://nik-we.narod.ru/stable.html laugh.gif VS dry.gif http://nik-we.narod.ru/table.html

Помогите ещё вот с этим разобраться

Код
var x=100; y=100;
var div;

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

function Create_Div()
{
div = document.createElement('DIV');

div.style.display='block';
x=x+10;
y=y+10;
div.style.position = 'absolute';        
div.style.zindex = '1';                        
div.style.padding = '3';                      
div.style.FontSize = '2pt';                
div.style.pixelLeft = x;              
div.style.pixelTop = y;            
div.style.width = '100';                      
div.style.height = '100';                    
div.style.backgroundColor = 'Red';    

div.style.filter='alpha(opacity=30)';  


document.body.appendChild(div);      
div.innerHTML = 'Hello Word Pipl';
}


function Destroy_Div()
{
   document.body.removeChild("div");
}


document.body.removeChild("div") - вот здесь мне надо знать ID который я не задаю и не как не могу получить каким либо способом ,, при многократном вызове function Create_Div() создаёться много дивов, а function Destroy_Div() удаляеться только последний созданный! надо решить проблему потому что когда я буду на DIV вешать TABLE мне тоже ID будут нужны таблици и ячеек для создания обработчика клика по ячейкам.

http://nik-we.narod.ru/table.html клики по ячейкам обработываться

http://nik-we.narod.ru/stable.html уже не обрабатываються !! С Уважением Коля! cool.gif
Vovochka
Чтобы отчистить тег от всего, что в нем есть существует два способа:
Лёгкий: document.getElementById('some_container').innerHTML = "";
и путь для мачо. которых не пугает DOM:
Код
var c = document.getElementById('some_container');
while (c.firstChild) c.removeChild(c.firstChild);


В привиденных тобою примерах я не заметил разницы, которую хотел бы увидеть, а именно создание таблицы через DOM.

+ Результат работы скрипта я смог увидить лишь через DOM inspector. ибо визуально я его так и не увидел.
На всякий случай повторю. Сижу под линухом и IE не имею.
Rjkz
да я спрашивал честно говря про ID и как его узнать , а не то как очистить тег,,,как очистить я знаю,,лиж бы знать ID шку ,,а как её назначать в моём примере не подскажите?? blink.gif
Sandr
Цитата(Rjkz @ 6:02:2008, 11:24 ) *
да я спрашивал честно говря про ID и как его узнать , а не то как очистить тег,,,как очистить я знаю,,лиж бы знать ID шку ,,а как её назначать в моём примере не подскажите?? blink.gif


а элемен кто создал? Если Вы, то какие проблемы с айдишкой? Если кто-то другой - то посмотрите в сорсе... или в коде, ктоторый создает этот элемент...
Rjkz
Вот код я сам его динамю

Код
var x=100; y=100;
var div;



function Create_Div()
{
div = document.createElement('DIV');

div.style.display='block';
x=x+10;
y=y+10;
div.style.position = 'absolute';        
div.style.zindex = '1';                        
div.style.padding = '3';                      
div.style.FontSize = '2pt';                
div.style.pixelLeft = x;              
div.style.pixelTop = y;            
div.style.width = '100';                      
div.style.height = '100';                    
div.style.backgroundColor = 'Red';    

div.style.filter='alpha(opacity=30)';  


document.body.appendChild(div);      
div.innerHTML = 'Hello Word Pipl';
}


function Destroy_Div()
{
   document.body.removeChild("div");
}


Какую строку надо написать в function Create_Div() чтоб диву ID назначить?
Sandr
Код
function Create_Div(divID)
{
div = document.createElement('DIV');
div.id = divID
.......
.......
Rjkz
вот исправленый код
Код
var x=100; y=100;
var div;

function Create_Div()
{
div = document.createElement('DIV');
div.id = 'Div1';
div.style.display='block';
x=x+10;
y=y+10;
div.style.position = 'absolute';          
div.style.zindex = '1';                        
div.style.padding = '3';                      
div.style.FontSize = '2pt';                
div.style.pixelLeft = x;              
div.style.pixelTop = y;              
div.style.width = '100';                      
div.style.height = '100';                    
div.style.backgroundColor = 'Red';    

div.style.filter='alpha(opacity=30)';  


document.body.appendChild(div);    
div.innerHTML = 'Hello Word Pipl';
}


function Destroy_Div()
{
document.body.removeChild(document.getElementById('Div1'));
}


1.при не однакратном вызове Create_Div() создаёться много Div-ов с одним ID шником , и удаляються вызавом Destroy_Div() в порядке создания , а чо писать надо в Destroy_Div() если я хочу адалить второй к примеру ?
2. а если не писать в Create_Div() строку div.id = 'Div1'; то какой ID-шник будет назначаться по умалчанию элементам? или вообще его тогда не будет? ph34r.gif

в представленном коде какая то ерунда получаеться вызовом Create_Div() создаёться много элементов с одним ID-шником , объесните в чом тут логика? blink.gif
Vovochka
Потому что нефиг назначать один и тот же ай ди на все про все. Гинерить iD в соответствии с итерацией цикла создания DIVа, или ввести переменную, счетчик.
Ну и так...
Код
function delete_on_click (self) {
  var parent_div = self.parent;
  parent_div.parent.removeNode(parent_div);
}
...
<div><input type='button' value='delete' onclick='delete_on_click(this)'></div>
Sandr
Для: Rjkz
А я тем более не понял, чем не устроил мой пример... Я в этом примере предложил айди передавать в функцию парматром, для того, что бы можно было создать див с любым айди...
Rjkz
Для: Sandr
На основе твоего примера я и сделал функцию,,просто у меня теперь создаються много Дивов с одним айдишником мне логика не ясна,,передовать параметром не могу потому что это только основа в ту функцию и так будут передоваться много потом параметров типа размерности положения и прочего не хочеться всё усложнять ,,,!

Разве не кто не знает или не может расказать о механизме создания и присвония параметров свойствам если такие не указываються в явном виде ? rolleyes.gif
sax_ol
Для: Rjkz
Вам уже пояснили и не один раз, пора уже и думать начинать. Программирование оно дело такое, не думать - не сделать.
Sandr
Цитата(Rjkz @ 7:02:2008, 14:39 )
о механизме создания и присвония параметров свойствам если такие не указываються в явном виде
*


очень сильно звучит... не осилил...
Rjkz
посколько тема ночала отходить от своего смысла существования ,

-может не нужно продолжать?

-я разобрался всё можно делать без завединия счётчиков индекса

-производительность счас мало уже каго интересует glina34@mail.ru ph34r.gif




форум тот же чат только для тормозов laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif
sax_ol
Цитата(Rjkz @ 7:02:2008, 21:15 )
форум тот же чат только для тормозов

Самокритика, вещь полезная!
Rjkz
Самокритика самокритеке рознь,,,а где реальны и дельные советы по написанию сценариев или довайте начнём здесь теперь обсуждать кто и сколько раз занемаеться сексом со своими жонами,,,,
Sandr
Я все еще не вижу тчного и понятного вопроса...
Vovochka
Для: Rjkz
Уже давно пора было решить все вопросы. Но ты же все обращаешься с элементарными вопросиками, над которыми просто не хочешь думать.
Цитата(Rjkz @ 7:02:2008, 22:39 )
Разве не кто не знает или не может расказать о механизме создания и присвония параметров свойствам если такие не указываються в явном виде ?
*

Да, я явно такого механизма не знаю.
Само понятие "параметр свойства" для меня уже не понятно.

Если что:
http://c-books.info/books/news6.php/2007/1...-do-this-2.html
http://c-books.info/books/news6.php/2007/0...x-projects.html
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2008 IPS, Inc.