Таблица берется посредством ajax`a и алертится[ alert(req.responseText) ] - код выводится верный. Тип:

Выделить код

Код:

<table>
<tr><td>форма</td><td>текст</td><td>текст</td></tr>
<tr><td>форма</td><td>текст</td><td>текст</td></tr>
<tr><td>форма</td><td>текст</td><td>текст</td></tr>
</table>

Потом

Выделить код

Код:

document.getElementById('div_for_table').innerHTML = req.responseText

И код таблицы коверкается - добавляются после <table> и перед </table> <tbody> , </tbody> - это нестрашно, но все портит то, что ФФ коверкает структуру таблицы. В частности, переносит первый тег </td> к следующему. В итоге содержимое div`а получается таким:

Выделить код

Код:

<table>
<tr><td>форма<td>текст</td></td><td>текст</td></tr>
<tr><td>форма<td>текст</td></td><td>текст</td></tr>
<tr><td>форма<td>текст</td></td><td>текст</td></tr>
</table>

В Опере и Ослике все работает нормально, что очень обидно. Ведь ФФ - это, вроде как, эталон...

SMiX
Во-первых, Firefox всё-таки не эталон. :)
Во-вторых, не воспроизводится:
http://xsms.nm.ru/temp/gecko/ajax_innerhtml_tables/

http://seo.w00d.org/?act=viewpr&id=1
Вот тут трабла..

Я думаю, это из-за некорректной вложенности элементов. <form method="post" action=""> открывается в одной ячейке, а закрывается в следующей.

Дада кстати была мысль, но забыл потом. Пасиб :) Теперь надо решить, как это привести к "стандарту"... Не хочется сложных конструкций типа <input onclick="document.getElementById(ид формы)" />

SMiX
Вложить все td в form, а form в tr?

Пробовал. Таблица коверкается
И tr в form вкладывал - таблица получается размером в 1 пиксель =)

Как именно коверкается?
У меня всё нормально:

Выделить код

Код:

...
<table border="1" bordercolor="black">
<tr><th>Ссылки</th></tr>
<tr><form method="post" action=""><td><textarea name="link" cols=20 rows=10>ss</textarea></td><td><input type="submit" value="Обновить" /></td><td>Тут будет кнопка удаления</td></form></tr>
</table>
...

Вот поставил...
http://seo.w00d.org/?act=viewpr&id=1

Добавлено Птн 01 Дек 2006 22:31:35 :
Лаги происходят именно после изменения innerHTML. Когда такой код просто загружается лагов нет.

Мда.
Я бы сделал через сложные конструкции типа <input onclick="document.getElementById(ид формы)" />.
Тем более эти сложные конструкции можно сильно упростить:

Выделить код

Код:

...
<tr><td><textarea cols=20 rows=10>ss</textarea></td><td><input type="button" onclick="update(this);" value="Обновить" /></td><td>Тут будет кнопка удаления</td></tr>
...

а в update() добираться к нужному textarea например через DOM:

Выделить код

Код:

function update(input){
 var textarea=input.parentNode.parentNode.getElementsByTagName('TEXTAREA')[0];
 alert(textarea.value);
 //далее отправляем ajax-запрос
}

Пасиб так и сделаю

Теперь пишет

this.parentNode has no properties

Поправил строку

Выделить код

Код:

var textarea=input.parentNode.parentNode.getElementsByTagName('TEXTAREA')[0];

на

Выделить код

Код:

var textarea=this.parentNode.parentNode.getElementsByTagName('TEXTAREA')[0];

Можно через document.getElementById, Но хотелось бы продолжить идею с parentNode