Jump to content
  • 0

Организация каталога и поиска по нему


noran
 Share

Question

Здравствуйте ! Подскажите пожалуйста в этом скрипте почему у меня не выравнивается таблица

document.write("<table width=800px cellspacing=1 border=0 align=center id=cnt"+i+" class=dataRow><tr bgcolor=#dddddd>"+

и не происходит поиск в столбцах

<td width=60px>"+contents[4]

<td width=60px>"+contents[5].

Весь код ниже. Пытаюсь сделать 5 элементов в строке массива, в первой только для примера.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<HTML>
<HEAD><meta http-equiv="content-type" content="text/html; charset=windows-1251">
<TITLE>Поиск через форму в таблице</TITLE>
</HEAD>
<STYLE type=text/css>
.dataRow {
FONT-FAMILY: monospaced;
POSITION: absolute;
TOP: 50px;
}
</STYLE>
<script language=JavaScript>
topPos = 300; // Откуда ряды начинают появлятся
visible=new Array();
contents = new Array(
new Array(0,"Улица Подбельского","Сокольническая","001","info4","info5"),
new Array(1,"Черкизовская","Сокольническая","002"),
new Array(2,"Преображенская площадь","Сокольническая","003"),
new Array(3,"Сокольники","Сокольническая","004"),
new Array(4,"Красносельская","Сокольническая","005"),
new Array(5,"Комсомольская","Сокольническая","006"),
new Array(6,"Красные ворота","Сокольническая","007"),
new Array(7,"Чистые пруды","Сокольническая","008"),
new Array(8,"Лубянка","Сокольническая","009"),
new Array(9,"Охотный ряд","Сокольническая","010"),
new Array(10,"Библиотека им. Ленина","Сокольническая","011"),
new Array(11,"Кропоткинская","Сокольническая","012"),
new Array(12,"Парк Культуры","Сокольническая","013"),
new Array(13,"Фрунзенская","Сокольническая","014"),
new Array(14,"Спортивная","Сокольническая","015"),
new Array(15,"Ленинские горы","Сокольническая","016"),
new Array(16,"Университет","Сокольническая","017"),
new Array(17,"Проспект Вернадского","Сокольническая","018"),
new Array(18,"Юго-Западная","Сокольническая","019"),
new Array(19,"Красногвардейская","Замоскворецкая","020"),
new Array(20,"Домодедовская","Замоскворецкая","021"),
new Array(21,"Орехово","Замоскворецкая","022"),
new Array(22,"Царицыно","Замоскворецкая","023"),
new Array(23,"Кантемировская","Замоскворецкая","024"),
new Array(24,"Каширская","Замоскворецкая/Каховская","025"),
new Array(25,"Каховская","Каховская","026"),
new Array(26,"Варшавская","Каховская","027"),
new Array(27,"Коломенская","Замоскворецкая","028"),
new Array(28,"Автозаводская","Замоскворецкая","029"),
new Array(29,"Павелецкая","Замоскворецкая","030"),
new Array(30,"Новокузнецкая","Замоскворецкая","031"),
new Array(31,"Театральная","Замоскворецкая","032"),
new Array(32,"Тверская","Замоскворецкая","033"),
new Array(33,"Маяковская","Замоскворецкая","034"),
new Array(34,"Белорусская","Замоскворецкая","035"),
new Array(35,"Динамо","Замоскворецкая","036"),
new Array(36,"Аэропорт","Замоскворецкая","037"),
new Array(37,"Сокол","Замоскворецкая","038"),
new Array(38,"Войковская","Замоскворецкая","039"),
new Array(39,"Водный стадион","Замоскворецкая","040"),
new Array(40,"Речной вокзал","Замоскворецкая","041"),
new Array(41,"Киевская","Арбатско-Покровская","042"),
new Array(42,"Смоленская","Арбатско-Покровская","043"),
new Array(43,"Арбатская","Арбатско-Покровская","044"),
new Array(44,"Площадь Революции","Арбатско-Покровская","045"),
new Array(45,"Курская","Арбатско-Покровская","046"),
new Array(46,"Бауманская","Арбатско-Покровская","047"),
new Array(47,"Электрозаводская","Арбатско-Покровская","048"),
new Array(48,"Семеновская","Арбатско-Покровская","049"),
new Array(49,"Измайловский парк","Арбатско-Покровская","050"));

function showContents() {
var currTop = topPos
for (i=0; i<contents.length; i++) {
var lyr = document.all["cnt"+contents[i][0]].style;
if (visible[i]) {
lyr.top = currTop
currTop += rowHeight - 1;
lyr.visibility = "visible";
} else lyr.visibility = "hidden";
}
}

function filter() {
var param = document.forms[0].param.options[document.forms[0].param.selectedIndex].value
for (i=0; i<contents.length; i++) {
if (contents[i][param].indexOf(document.forms[0].key.value)>=0) visible[i] = true;
else visible[i] = false;
}
showContents();
}
</SCRIPT>
</HEAD>
<BODY bgColor=#c5c5c5>
<script language=JavaScript>
for (i=0; i<contents.length; i++) {
document.write("<table width=800px cellspacing=1 border=0 align=center id=cnt"+i+" class=dataRow><tr bgcolor=#dddddd>"+
"<td width=260px>"+contents[i][1]+"</td>"+
"<td width=260px>"+contents[i][2]+"</td>"+
"<td width=160px>"+contents[i][3]+"</td>"+
"<td width=60px>"+contents[i][4]+"</td>"+
"<td width=60px>"+contents[i][5]+"</td></tr></table>");
visible[i] = true;
}
rowHeight = document.all["cnt"+contents[0][0]].offsetHeight;
topPos = rowHeight + 50;
showContents();
</SCRIPT>
<FORM>Поле<SELECT name=param>
<OPTION value=1 selected>Станция</OPTION>
<OPTION value=2>Линия</OPTION>
<OPTION value=3>Код станции</OPTION>
<OPTION value=4>Поле 4</OPTION>
<OPTION value=5>Поле 5</OPTION>
</SELECT>содержит:<INPUT onkeyup=filter(); onchange=filter(); name=key></FORM>
<TABLE cellSpacing="1" width="800px" border="0" align="center">
<TBODY>
<TR bgColor=#eeeeee>
<TD width="260px" height="20px">Станция</TD>
<TD width="260px" height="20px">Линия</TD>
<TD width="160px" height="20px">Код станции</TD>
<TD width="60px" height="20px">Поле 4</TD>
<TD width="60px" height="20px">Поле 5</TD>
</TR></TBODY></TABLE>
</BODY>
</HTML>

И очень нужен скрипт добавление данных в массив через форму(ы) - например вида new Array("номер строки массива","contents[1]","contents[2]","contents[3]","contents[4]","contents[5]"), . Поделитесь пожалуйста ссылками на подобное.

Link to comment
Share on other sites

17 answers to this question

Recommended Posts

  • 0

в ослике 6 sp2 поиск работает. и собственно только в осле и будет работать стопроцентно

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

На мой взгляд красивее будет переписать код и поместить все в одну таблицу и оперировать скрытием-отображением ее строк. (см insertRow, appendChild, createElement)

по вопросу добавления данных в массив см. Array.push(). например: Array.push(Array(value1,value2,...,valueN)); где value1 - valueN получаем из значений соответствующих инпутов формы.

Link to comment
Share on other sites

  • 0

Спасибо за комментарий, он меня подтолкнул на правильный путь - кое-какие задумки появились, но я не могу понять как мне организовать поиск по уже имеющейся таблице. Не подскажете ? Может тут не много надо изменить в скрипте. Я в скриптах еще тот дуб ("изучать" начал 3 дня назад :D)

Link to comment
Share on other sites

  • 0
... но я не могу понять как мне организовать поиск по уже имеющейся таблице. Не подскажете? Может тут не много надо изменить в скрипте.

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

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

вообще, если поиск по каким-то причинам не работает, то в IE есть всплывающие подсказки на ту строку где он (осел) сподкнулся

Link to comment
Share on other sites

  • 0

Поясняю: имеется список в виде таблицы (импортированные и почищенный из exel) в 5 столбцов и уйму строк. Обычная таблица <table></table>. Вот как бы реорганизовать скрипт чтобы искать в таблице по столбцам (они же будут категориями) ? В этом (выше) скрипте создается таблица из массива, мне не совсем удобно, но я более близкого себе скрипта не нашел. Сам написать я не могу.

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD><meta http-equiv="content-type" content="text/html; charset=windows-1251">
<TITLE>Поиск через форму в таблице</TITLE>
</HEAD>
<script language = 'JavaScript'>
var numb;
numb = 1;
function add_new_row() {
var currrow;
currow = document.all.tbl.rows.length;
numb++;
document.all.tbl.insertRow(currow);
document.all.tbl.rows[currow].insertCell(0);
document.all.tbl.rows[currow].insertCell(1);
document.all.tbl.rows[currow].insertCell(2);
document.all.tbl.rows[currow].insertCell(3);
document.all.tbl.rows[currow].insertCell(4);
document.all.tbl.rows[currow].cells[0].innerHTML = '<input type=\"text\" name=\"number_'+ numb +'\">';
document.all.tbl.rows[currow].cells[1].innerHTML = '<input type=\"text\" name=\"date_'+ numb+'\">';
document.all.tbl.rows[currow].cells[2].innerHTML = '<input type=\"text\" name=\"theme_'+ numb+'\">';
document.all.tbl.rows[currow].cells[3].innerHTML = '<input type=\"text\" name=\"target_'+ numb+'\">';
document.all.tbl.rows[currow].cells[4].innerHTML = '<input type=\"text\" name=\"sender_'+ numb+'\">';
document.all.tbl.rows[currow].cells[5].innerHTML = '<input type=button name=\"btnNext\" value=\"+\" onClick=\"add_new_row()\">';
}
function createTable()
{
var newElem=document.createElement("table");
newElem.wedth="900";
newElem.border=1;

var newRow=newElem.insertRow(0);
var newCell = newRow.insertCell(0);
newCell.width="40";
newCell.align="center";

var newCell = newRow.insertCell(-1);
newCell.width="80";
newCell.align="center";

var newCell = newRow.insertCell(-1);
newCell.width="300";
newCell.align="center";

var newCell = newRow.insertCell(-1);
newCell.width="300";
newCell.align="center";

var newCell = newRow.insertCell(-1);
newCell.width="80";
newCell.align="center";

var newCell = newRow.insertCell(-1);
newCell.width="100";
newCell.align="center";

var newElem=document.createElement("input");
newElem.width="100";
newElem.type="button";
newElem.value="Стереть";
newElem.onclick="delete_tr(this)";
newElem.appendChild(newCell);

document.body.appendChild(newElem);
}
function delete_tr(obj) //собсна функция удаления строки
{
var num_tr=obj.parentNode.parentNode.sectionRowIndex;
document.getElementById("table").tBodies[0].deleteRow(num_tr);
}
</SCRIPT><body style="font-family:Verdana; font-size:14px">
<form name="links" method="post" onSubmit="createTable();return false">
<table width="800" id="tbl" cellpadding="0" cellspacing="0" border="1">
<tr bgcolor=#FF9933 align="center">
<td align="center">№ письма</td>
<td align="center">Дата отправления</td>
<td align="center">Тема письма</td>
<td align="center">Отправитель</td>
<td colspan=2 align="center">Получатель</td>
</tr>
<tr>
<td><input type="text" name="number" width="160"></td>
<td><input type="text" name="date_1" width="160"></td>
<td><input type="text" name="theme_1" width="160"></td>
<td><input type="text" name="target" width="160"></td>
<td><input type="text" name="sender" width="160"></td>
<td><input type="button" name="btnNext" value="+" onClick="add_new_row()"></td>
</tr>
</table>
<input type="submit" value="Сохранить">
<input type="reset" value="Сброс написанного">
</form>
</body></HTML>

Edited by noran
Link to comment
Share on other sites

  • 0

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

Edited by noran
Link to comment
Share on other sites

  • 0

Итак, я тут пока поразвлекался со старым примером:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>поиск через форму в таблице</title>
<style type="text/css">
/*<![CDATA[*/
BODY {
font-family:Arial, Helvetica, sans-serif;
font-size:10pt;
}
TABLE {
border-collapse:collapse;
border-bottom:1px dotted #9E9E9E;
width:800px;
}
TABLE TD {
border:1px dotted #9E9E9E;
padding:0.2em 0.2em 0.2em 0.5em;
}
TABLE TH {
border:1px solid #FFFFFF;
}
.hidden {
display:none;
}
/*]]>*/
</style>
<script language="javascript" type="text/javascript">
//<![CDATA[
var Contents = new Array(
new Array("улица подбельского","сокольническая","001"),
new Array("черкизовская","сокольническая","002"),
new Array("преображенская площадь","сокольническая","003"),
new Array("сокольники","сокольническая","004"),
new Array("красносельская","сокольническая","005"),
new Array("комсомольская","сокольническая","006"),
new Array("красные ворота","сокольническая","007"),
new Array("чистые пруды","сокольническая","008"),
new Array("лубянка","сокольническая","009"),
new Array("охотный ряд","сокольническая","010"),
new Array("библиотека им. ленина","сокольническая","011"),
new Array("кропоткинская","сокольническая","012"),
new Array("парк культуры","сокольническая","013"),
new Array("фрунзенская","сокольническая","014"),
new Array("спортивная","сокольническая","015"),
new Array("ленинские горы","сокольническая","016"),
new Array("университет","сокольническая","017"),
new Array("проспект вернадского","сокольническая","018"),
new Array("юго-западная","сокольническая","019"),
new Array("красногвардейская","замоскворецкая","020"),
new Array("домодедовская","замоскворецкая","021"),
new Array("орехово","замоскворецкая","022"),
new Array("царицыно","замоскворецкая","023"),
new Array("кантемировская","замоскворецкая","024"),
new Array("каширская","замоскворецкая/каховская","025"),
new Array("каховская","каховская","026"),
new Array("варшавская","каховская","027"),
new Array("коломенская","замоскворецкая","028"),
new Array("автозаводская","замоскворецкая","029"),
new Array("павелецкая","замоскворецкая","030"),
new Array("новокузнецкая","замоскворецкая","031"),
new Array("театральная","замоскворецкая","032"),
new Array("тверская","замоскворецкая","033"),
new Array("маяковская","замоскворецкая","034"),
new Array("белорусская","замоскворецкая","035"),
new Array("динамо","замоскворецкая","036"),
new Array("аэропорт","замоскворецкая","037"),
new Array("сокол","замоскворецкая","038"),
new Array("войковская","замоскворецкая","039"),
new Array("водный стадион","замоскворецкая","040"),
new Array("речной вокзал","замоскворецкая","041"),
new Array("киевская","арбатско-покровская","042"),
new Array("смоленская","арбатско-покровская","043"),
new Array("арбатская","арбатско-покровская","044"),
new Array("площадь революции","арбатско-покровская","045"),
new Array("курская","арбатско-покровская","046"),
new Array("бауманская","арбатско-покровская","047"),
new Array("электрозаводская","арбатско-покровская","048"),
new Array("семеновская","арбатско-покровская","049"),
new Array("измайловский парк","арбатско-покровская","050")
);
function initData () {
var searchResults = document.getElementById('searchResults'),
rowsCount = searchResults.rows.length;
for (var i=0, endi=Contents.length; i<endi; i++) {
var tr = searchResults.insertRow(rowsCount);
for (var j=0, endj=Contents[i].length; j<endj; j++) tr.appendChild(__createTdElement (Contents[i][j]));
tr.setAttribute('id', 'resrow'+i);
rowsCount++;
}
}

function __createTdElement (text) {
var td = document.createElement('td');
var txt = document.createTextNode(text);
td.appendChild(txt);
return td;
}

function filter() {
var param = document.getElementById('param').value;
var searchparam = document.getElementById('key').value;

var rFun = document.getElementById('criteria').value ==1
? function (a,b) {return a.search(b)>=0 ? true : false}
: function (a,b) {return a.search(b)==0 ? true : false};

for (var i=0, end=Contents.length; i<end; i++) {
if (rFun(Contents[i][param],searchparam)) document.getElementById('resrow'+i).className='';
else document.getElementById('resrow'+i).className='hidden';
}
}
//]]>
</script>
</head>
<body onload="initData()">
<div style="text-align:center; width:100%; margin-bottom:15px;">
Критерии поиска 
<select name="param" id="param">
<option value="0" selected="selected">станция</option>
<option value="1">линия</option>
<option value="2">код станции</option>
<option value="0">поле 4</option>
<option value="0">поле 5</option>
</select>

<select name="creteria" id="criteria" onchange="if (document.getElementById('key').value!='') filter();">
<option value="1" selected="selected">содержит</option>
<option value="2">начинается</option>
</select>

<input onkeyup="filter();" name="key" id="key" />
</div>
<table id="searchResults" cellpadding="0" cellspacing="0" align="center" summary="Результаты поиска">
<tr style="background-color:#9A9A9A;">
<th width="300" height="20">Cтанция</th>
<th width="260" height="20">Линия</th>
<th width="20" height="20">Код станции</th>
<!--<th width="60" height="20">поле 4</th>
<th width="60" height="20">поле 5</th>-->
</tr>
</table>
</body>
</html>

Может увидите полезное.

Чтож ближе к телу. Имхо, алгоритм поиска по уже существующей таблице:

1. таблица это двумерный массив. тогда нам надо пройтись по всем строкам таблицы

[Table].rows.length;

2. нам надо найти соответстующий критерию поиска столбец (param = станция/код станции/ветка = 0/1/2), а точнее вложенный в столбец текст:

[Table].rows[RowIndex].getElementsByTagName('TD').item(param).innerHTML;

для осла, если не ошибаюсь, будет так [TableRow].getElementsByTagName('TD')[param].innerHTML;

document.getElementsByTagName() использовано для надежности, могут между <td></td> быть например пробелы.

3. дальше "дело техники"...

Удалить строку: [Table].deleteRow([RowIndex]);

Link to comment
Share on other sites

  • 0

Со старым примером буду думать, а вот с формой.. Что-то не так видно в разделе добавления последней ячейки и кнопки в нее. Потому что не добавляется она :D Я хочу через нее функцию удаления выполнять.

	var newCell = newRow.insertCell(-1); 
newCell.width="100";
newCell.align="center";

var newElem=document.createElement("input");
newElem.width="100";
newElem.type="button";
newElem.value="Стереть";
newElem.onclick="delete_tr(this)";
newElem.appendChild(newCell);

И я не понял зачем эту строку удалять ? Без нее как вычислить номер строки в таблице которую надо удалить ?

document.getElementById("table").tBodies[0].deleteRow(num_tr);

P.s. Я конечно попробовал удалить, но без эффекта.

Link to comment
Share on other sites

  • 0

собсвенно. думать надобно :D что удалить требуется.

   var newInput=document.createElement("INPUT");
newInput.width="100";
newInput.type="button";
newInput.value="Стереть";
newInput.onclick=delete_tr;
newCell.appendChild(newInput);
}

function delete_tr() //собсна функция удаления строки. строки ли?
{
var obj=window.event.srcElement;
var todel = obj.parentNode.parentNode.parentNode.parentNode; //table element
document.body.removeChild(todel);
}

И вообще все значительно просче

function add_new_row() {
var obj=window.event.srcElement;
var toClone = obj.parentNode.parentNode;
var newRow = toClone.cloneNode(true);
toClone.parentNode.appendChild(newRow);
var e = newRow.children.length-1;
newRow.children[e].children[0].onclick = delete_tr;
newRow.children[e].children[0].value = "-";
}
function delete_tr() {
var obj=window.event.srcElement;
var todel = obj.parentNode.parentNode;
todel.parentNode.removeChild(todel);
}

Link to comment
Share on other sites

  • 0

и собственно сама форма должна выглядеть по иному

<tr>
<td><input type="text" name="number[]" width="160"></td>
<td><input type="text" name="date_1[]" width="160"></td>
<td><input type="text" name="theme_1[]" width="160"></td>
<td><input type="text" name="target[]" width="160"></td>
<td><input type="text" name="sender[]" width="160"></td>
<td><input type="button" name="btnNext[]" value="+" onClick="add_new_row()"></td>
</tr>

так как в результате отправляется массив значений

Link to comment
Share on other sites

  • 0

Большое вам спасибо за то, что вы мне помогаете ! :D Без этого я бы еще к концу года разобрался. Подскажите где ошибка в функции добавления строки и столбцов к уже имеющейся таблице ? Вот код:

function createROW()
{
var parent = document.getElementById('Incoming');
var toClone = obj.parentNode.parentNode;
var newRow = toClone.cloneNode(true);
toClone.parentNode.appendChild(newRow);
var e = newRow.children.length-1;
var newCell = newRow.insertCell(-1);
newCell.width="40";
newCell.align="center";
newCell.innerHTML="1 1";

var newCell = newRow.insertCell(-1);
newCell.width="80";
newCell.align="center";
newCell.innerText="1 2";

var newCell = newRow.insertCell(-1);
newCell.width="250";
newCell.align="center";
newCell.innerText="1 3";

var newCell = newRow.insertCell(-1);
newCell.width="250";
newCell.align="center";
newCell.innerText="1 4";

var newCell = newRow.insertCell(-1);
newCell.width="80";
newCell.align="center";
newCell.innerText="1 5";

var newCell = newRow.insertCell(-1);
newCell.align="center";
}

Таблица например такая:

<table width="800" border="1" cellspacing="0" cellpadding="0" align="center" id="Incoming">
<tr>
<td width="40"> </td>
<td width="130"> </td>
<td width="250"> </td>
<td width="250"> </td>
<td width="130"> </td>
</tr>
</table>

Хочу сделать так чтобы при щелчке по кнопке "сохранить" создавалась не новая таблица, а расширялась старая c id="Incoming". Однако ко всему прочему я не знаю как мне отсылать инфу из форм number[], date_1[], theme_1[], target[], sender[] если задейстована одна строка с формами и несколько ?

Link to comment
Share on other sites

  • 0

obj, obj.parentNode.parentNode не определены (равны NULL) в выше приведенном примере. Надо определиться в том каким способом создается строка. либо клонируем предидущую либо ручками прописывам создание всех ее элементов.

Link to comment
Share on other sites

  • 0

> Однако ко всему прочему я не знаю как мне отсылать инфу из форм number[], date_1[], theme_1[], target[], sender[] если задейстована одна строка с формами и несколько ?

Как обычно

<form name="links" method="post">
<table width="800" id="tbl" cellpadding="0" cellspacing="0" border="1">
<tr bgcolor=#FF9933 align="center">
<td align="center">№ письма</td>
<td align="center">Дата отправления</td>
<td align="center">Тема письма</td>
<td align="center">Отправитель</td>
<td colspan=2 align="center">Получатель</td>
</tr>
<tr>
<td><input type="text" name="number[]" width="160"></td>
<td><input type="text" name="date_1[]" width="160"></td>
<td><input type="text" name="theme_1[]" width="160"></td>
<td><input type="text" name="target[]" width="160"></td>
<td><input type="text" name="sender[]" width="160"></td>
<td><input type="button" value="+" onClick="add_new_row()"></td>
</tr>
</table>
<input type="submit" value="Сохранить">
<input type="reset" value="Сброс написанного">
</form>

просто на сервере данные инерпритируются как нумерованые массивы (будь в этом массиве хоть одно значение, хоть ни одного)

Link to comment
Share on other sites

  • 0
Как обычно...просто на сервере данные инерпритируются как нумерованые массивы (будь в этом массиве хоть одно значение, хоть ни одного)

Дело в том что я делаю без использования серверных технологий, а иначе было бы меньше заморочек с поиском и т.п. Поэтому и JavaScript. Просто технически нельзя сервер поставить :D

Link to comment
Share on other sites

  • 0

noran, тогда подробно уточняйте что вы хотите сделать. я не могу за вас делать вашу работу по трем причинам: 1. не вижу всего коплекса задач

2. это ваша работа, а не моя

3. мне за это не платят

с другой стороны приемов уже высказанных в этой теме достаточно чтобы решить задачу создания таблиц. все остальное это только логика и желание найти ответ. :D читайте введение в DOM (document object model, объектная модель документа/модель объектов документа)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy