Как сделать динамическую таблицу меняющую размеры?
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Как сделать динамическую таблицу меняющую... Expand / Collapse
Автор
Сообщение
25.07.2007 15:28
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 02.05.2008 1:27
Сообщ.: 313, Visits: 2 982
Как сделать динамическую таблицу меняющую размеры?
Сообщ. #914948
25.07.2007 15:57
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
<html><head>
<title>Тест</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script type="text/javascript">
function resizeTable()
{
    var t1 = document.getElementById("t1");
    t1.style.width = (parseInt(t1.style.width)+25)+"px";
}
</script>
</head><body onload="setInterval('resizeTable()', 400)">
<table id="t1" border="1" style="width:100px">
<tr><td>Строка 1</td></tr>
<tr><td>Строка 2</td></tr>
</table>
</body></html>
Сообщ. #914951
25.07.2007 16:14
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 29.05.2008 20:04
Сообщ.: 269, Visits: 2 381
Создание динамической таблицы:

<html>
<head>
<title> </title>
<script>
function createTable5(counterz,countz){
var GetRem = document.getElementById("test");
var cloneGetRem = document.getElementById("testremover");
GetRem.removeChild(cloneGetRem);
var getIDs = document.getElementById("testremover");
if(!getIDs){
var getIDTest = document.getElementById("test");
var crtID = document.createElement("tbody");
crtID.id = "testremover";
getIDTest.appendChild(crtID);
getIDs = document.getElementById("testremover");
}
for(var counter=0; counter<counterz; counter++){
var crtTr = document.createElement("tr");
for(var count=0; count<countz; count++){
var crtTd = document.createElement("td");
var crtTxtNd = document.createTextNode("a"+counter+""+count);
crtTd.appendChild(crtTxtNd);
crtTr.appendChild(crtTd);
getIDs.appendChild(crtTr);
}
}
}
</script>
</head>
<body>
<form name="nnn">
стоблцов:<input type="text" name="r" value="5"><br>
строк:<input type="text" name="s" value="4"><br>
<input type="button" value="Создать" onClick="createTable5(parseInt(document.nnn.r.value),parseInt(document.nnn.s.value))">
</form>
<table border="1" id="test" style="position:absolute; top:100; left:50">
<tbody id="testremover">
</tbody>
</table>
</body>
</html>


----------------------------------
Я безработный...
Возьмите меня на работу. =)
Сообщ. #914953
11.09.2007 21:16
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 18.09.2007 20:58
Сообщ.: 7, Visits: 22
А как сгенерить не текстовое значение в ячейке таблицы, а к примеру, ссылку?
Рассмотрим кусок текста из предыдущего поста

for(var counter=0; counter var crtTr = document.createElement("tr");
for(var count=0; count var crtTd = document.createElement("td");
var crtTxtNd = document.createTextNode("a"+counter+""+count);
crtTd.appendChild(crtTxtNd);
==============================
при помощи createTextNode в ячейку таблицы записывается текстовое значение, как я понимаю. И даже если написать
var crtTxtNd = document.createTextNode("www.rambler");
в ячейке появится не ссылка, а простой текст в виде кода ссылки.

Сообщ. #915874
12.09.2007 9:05
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 29.05.2008 20:04
Сообщ.: 269, Visits: 2 381
Tray (11.09.2007)
А как сгенерить не текстовое значение в ячейке таблицы, а к примеру, ссылку?


Например, заменить строки:
for(var count=0; count<countz; count++){
var crtTd = document.createElement("td");
var crtTxtNd = document.createTextNode("a"+counter+""+count);
crtTd.appendChild(crtTxtNd);
crtTr.appendChild(crtTd);
getIDs.appendChild(crtTr);
}

на:
for(var count=0; count<countz; count++){
var crtTd = document.createElement("td");
crtTd.setAttribute("id","a"+counter+""+count);
crtTr.appendChild(crtTd);
getIDs.appendChild(crtTr);
document.getElementById("a"+counter+""+count).innerHTML="<a href='http://relib.com'>relib.com "+counter+""+count+"</a>";
}


----------------------------------
Я безработный...
Возьмите меня на работу. =)
Сообщ. #915877
12.09.2007 13:01
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 18.09.2007 20:58
Сообщ.: 7, Visits: 22
О, спасибо тебе огромное, мой Мастер!
Я вчера 10 часов просидел за компом, пытаясь сделать что-то типа поиска на своем сайте. Почти все сделал, но так и не смог понять как ссылку засунуть в ячейку. Вчера первый раз сел за джаваСкрипт :)

Кстати, а ты не мог бы мне подсказать одну вещь?
Как мне сделать поиск на своем сайте, не используя ничего кроме javaScript?

У меня ща поиск так будет организован - ввел параметры, нажал кнопку, - генерится табличка с названием предмета и картинкой к нему. Пользователь потом щелкает по ссылке или по картинке и переходит на новую страницу.
Так вот трабл ща в том, что когда пользователь возвращается на предыдущую страницу (собсно, где результаты поиска были), то она опять в первозданном виде, таблички нет, как будто он ничего и не искал.
Можно как-нить по нормальному сделать поиск? Я просто новис в этом и ниче особенно не понимаю. Но мож хоть на мысль натолкнешь?

=================
1) как сделать так, чтобы массивы находились в другом файле, и оттуда значения бы читались и передавались сюда? (после чего значения записывались бы в ячейки)

2) как присвоить сгенеренной ячейке определенный стиль?
{background: #f2dfb5; height: 16pt; color: #000000; text-align: center;vertical-align: center; padding: 2px; font-weight: normal; font-size: 12px;}

пробовал td.setAttribute("style","bgcolor='#f2dfb5'"); - не помогает
td.setAttribute("bgcolor","#f2dfb5"); - тоже не помогает
Сообщ. #915882
12.09.2007 21:46
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 29.05.2008 20:04
Сообщ.: 269, Visits: 2 381
Tray (12.09.2007)

Как мне сделать поиск на своем сайте, не используя ничего кроме javaScript?

Ну неполностью удалось реализовать поиск по сайту через JavaScript, единственная проблема при нажатие на интересующее значение таблицы (формирующуюся после нажатие на кнопку поиска) это открытие интересующей страницы и переход к самому слову, вот переход к слову не реализован...
Кроме этого все страницы сайта должны быть сохранены в кодеровке UTF-8...
notepad->open->site.htm
file->save as->
Имя файла: 1.htm
Тип файла: все файлы
В строке кодировка выставляется UTF-8

После сохранения файлов в UTF-8.
Если на страницах установлен тег meta, то он должен иметь вид:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

исходник:

<html>
<head>
<title> Поиск </title>
<style>
td {
cursor:pointer;
}
</style>
<script>
/*
Все страницы сайта должны иметь кодировку UTF-8
*/

var site=new Array("1No4nay_straja_utf.htm","2No4nay_straja_utf.htm","3No4nay_straja_utf.htm"); //страницы в которых должен выполняться поиск
var text;
var numsite=0;
var ressult=0;
var na4=0,kon=0;
var id_index=0;
var link_poisk=new Array();
var posicia=new Array();
var posiciatext=0;

function A() {
var aa1=new Date();
posiciatext=0;
ressult=0;
var strokapoiska=document.form1.reqq.value.toLowerCase();
var req = window.XMLHttpRequest?
new XMLHttpRequest() :
new ActiveXObject("Microsoft.XMLHTTP");
req.onreadystatechange = function() {
if (req.readyState == 4) {
text=req.responseText.toLowerCase(); //получение всей страницы...

//Формируем таблицу
var getIDs = document.getElementById("testremover");
if(!getIDs){
var getIDTest = document.getElementById("testing");
var crtID = document.createElement("tbody");
crtID.id = "testremover";
getIDTest.appendChild(crtID);
getIDs = document.getElementById("testremover");
}

while(ressult!=-1) {
var crtTr = document.createElement("tr");
var crtTd = document.createElement("td");
crtTd.setAttribute("id",id_index);

ressult=text.indexOf(strokapoiska); //Ищет
if (ressult==-1) break;

if ((ressult-50)>0) na4=ressult-50;
else na4=0;

if ((ressult+50)<text.length) kon=ressult+50;
else kon=text.length;

posiciatext+=ressult;
link_poisk.push(site[numsite]);
posicia.push(posiciatext);
id_index++;
posiciatext+=50;


var crtTxtNd = document.createTextNode(text.substring(na4,kon));
crtTd.appendChild(crtTxtNd);
crtTr.appendChild(crtTd);
getIDs.appendChild(crtTr);

text=text.substring(kon,text.length);
}

var aa2=new Date();
var aa3=aa2-aa1;
document.getElementById("bbb").innerHTML="<hr><hr><hr>Начало работы: "+aa1+"<br>Конец работы: "+aa2+"<br>Время работы: "+aa3; //Строку можно удалить

text="";

if (numsite<site.length) {
numsite++;
A();
}

}
}
req.open("post", site[numsite], true);
req.send(null);
}


function Poisk() {
var GetRem = document.getElementById("testing");
var cloneGetRem = document.getElementById("testremover");
GetRem.removeChild(cloneGetRem);
numsite=0;
id_index=0;

while (link_poisk.length!=0 || posicia!=0) {
link_poisk.pop();
posicia.pop();
}
A();
}

function B(mEvent) {
var imazz=document.getElementsByTagName("td");
myEvent=mEvent.srcElement?mEvent.srcElement:mEvent.target;
if (document.getElementById(myEvent.id)!=null) {
alert("Страница: "+link_poisk[parseInt(myEvent.id)]+" Номер символа: "+posicia[parseInt(myEvent.id)]);
window.open(link_poisk[parseInt(myEvent.id)],"MyWin");
}
}
</script>
</head>
<body>
<form name="form1">
<input type="text" name="reqq"> 
<input type="button" value="Поиск" onClick="Poisk()">
</form>

<div id="bbb">

<table border="1" id="testing" style="position:absolute;top:200;left:50;display:block" onClick="B(event)">
<tbody id="testremover">
</tbody>
</table>
</body>
</html>


Tray (12.09.2007)

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


Можно сделать массив в другом файле, если этот файл подключить к странице
<script type="text/javascript" language="javascript" src="file.js">

массив и функция для файла...
var site=new Array("1No4nay_straja_utf.htm","2No4nay_straja_utf.htm","3No4nay_straja_utf.htm");
function ArM(idz) {
return site[idz];
}

обращение:
var crtTxtNd = document.createTextNode(ArM(0));
crtTd.appendChild(crtTxtNd);


Tray (12.09.2007)

2) как присвоить сгенеренной ячейке определенный стиль?
{background: #f2dfb5; height: 16pt; color: #000000; text-align: center;vertical-align: center; padding: 2px; font-weight: normal; font-size: 12px;}

пробовал td.setAttribute("style","bgcolor='#f2dfb5'"); - не помогает
td.setAttribute("bgcolor","#f2dfb5"); - тоже не помогает


crtTd.setAttribute("style","background:#f2dfb5;text-align:center;");


----------------------------------
Я безработный...
Возьмите меня на работу. =)
Сообщ. #915887
13.09.2007 0:31
новичок

новичокновичокновичок