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


Автор: Onis 16.7.2008, 19:22
Добрый вечер Винград. 
Опять я со своими проблемами.

Вот есть таблица:

Код

<table bgcolor='black' valign='top' border='0' cellspacing=1 width='282' cellpadding=0>
<tr><td>
<table border='0' cellspacing=1 cellpadding=1 ><tr bgcolor='white'>
<td width='22px' align='center'>X</td>
<td width='200px' align='center'>Full Name</td>
<td width='60px' align='center'><span class='form'>Information</span></td>
</tr></table></td></tr>
<tr bgcolor='white'><td><form method='POST' action=''><div style='height:25em;overflow:auto;'>
<table width='100%' border='0' cellspacing=1 cellpadding=0 bgcolor='black'>";
                
for(i=0;i<fname.length;i=i+1)
{
<tr id=\"Contact$row->id\" bgcolor='white' OnmouseOver=\"this.style.background = 'silver'\" OnMouseOut=\"this.style.background = 'white'\">
<td width='22px'><input type='checkbox' name='DeleteContact["+i+"]' value='"+id[i].firstChild.data+"'></td>
<td width='200px' class='cur' title='Edit Contact' onclick='EditContact("+id[i].firstChild.data+")'>"+fname[i].firstChild.data+" "+lname[i].firstChild.data+"</td>
<td width='60px' align='center'><span class='cur' title='Personal Information' onclick='ShowUserInformation("+id[i].firstChild.data+")' >[SHOW]</span></td></tr>        
}

</table></div></td></tr>";
<tr bgcolor='white'><td align='right'><input type='submit' name='DeleteThisContacts' value='Delete'/></form>
<input type='submit' name='AddNewContact' value='Add' onClick='AddContact()'/>
</td></tr></table>


Нужно чтобы при нажатии <input type='submit' name='DeleteThisContacts' value='Delete'/> отправлялисть пост данные checkbox'сов. Но при таком построении нифига не отсылается, при нажатии на кнопку никакой реакции, а в firefox при таком расположении "</form>" вообще вся структура рушится.  smile 


Автор: bars80080 16.7.2008, 20:04
не фигасе у тебя код!

это каким макаром элементы js кода переплелись с чистым html?

здесь стопудово ошибка 
Код
for(i=0;i<fname.length;i=i+1)
{
<tr id=


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

ну и обычная ошибка: тэги <form> не должны разрушать вёрстку, 
если у тебя есть таблица, то форма может быть либо снаружи неё (<form><table> ... </table></form>), либо внутри ячейки (<td><form> ... </form></td>), но никак не в состоянии винегрета. это ж ни в какие стандарты не лезет!

Автор: Fortop 16.7.2008, 20:05
Onis, 
Сколько у тебя таблиц в верстке?
Сколько открывающих тегов, а сколько закрывающих?

Автор: Onis 16.7.2008, 20:54
Цитата(bars80080 @  16.7.2008,  20:04 Найти цитируемый пост)
здесь стопудово ошибка 

да, это я поправил, оно осталось с не динмического движка когда страница генерировалась php.

Цитата(bars80080 @  16.7.2008,  20:04 Найти цитируемый пост)
дальше, каким образом кнопка оказалась за гранью формы?

Ну это кнопка за гранью т.к. она не должна на нее никак влият, по ее клику выполняется отдельная javascript команда. Думаю правильней ее в <button> будет переделать.

Цитата(bars80080 @  16.7.2008,  20:04 Найти цитируемый пост)
это каким макаром элементы js кода переплелись с чистым html?

Эта таблица момент из JS скрипта который парсит получиные .responseXML данные.

Вот он полностью, если нужно:

Код

function RequestContactList() 
{
    switch (httpRequest.readyState)
    {
        case 0:
            document.getElementById(resultId).innerHTML = "<center>not initialized</center>";
        break;
        case 1:
            document.getElementById(resultId).innerHTML = "<center>loading...</center>";
        break;
        case 2:
            document.getElementById(resultId).innerHTML = "<center>load</center>";
        break;
        case 3:
            document.getElementById(resultId).innerHTML = "<center>in process...</center>";
        break;
        case 4:
            var fname = httpRequest.responseXML.getElementsByTagName('fname');
            var lname = httpRequest.responseXML.getElementsByTagName('lname');
            var id = httpRequest.responseXML.getElementsByTagName('id');
            var Content = "";

            Content+="<table bgcolor='black' valign='top' border='0' cellspacing=1 width='282' cellpadding=0>";
            Content+="<tr><td>";
            Content+="<table border=\"0\" cellspacing=1 cellpadding=1 ><tr bgcolor=\"white\">";
            Content+="<td width=\"22px\" align='center'>X</td>";
            Content+="<td width=\"200px\" align='center'>Full Name</td>";
            Content+="<td width=\"60px\" align='center'><span class='form'>Information</span></td>";
            Content+="</tr></table></td></tr>";
            Content+="<tr bgcolor='white'><td><form method='POST' action=''><div style=\"height:25em;overflow:auto;\">";
            Content+="<table id='maintab' width='100%' border='0' cellspacing='1' cellpadding='0' bgcolor='black'>";
                
            for(i=0;i<fname.length;i=i+1)
            {
                Content+="<tr id='row"+id[i].firstChild.data+"' bgcolor='white' >";
                Content+="<td width='22px'><input type='checkbox' name='DeleteContact["+i+"]' value='"+id[i].firstChild.data+"'></td>";
                Content+="<td width='200px' class='cur' title='Edit Contact' onclick='EditContact("+id[i].firstChild.data+")'>"+fname[i].firstChild.data+" "+lname[i].firstChild.data+"</td>";
                Content+="<td width='60px' align='center'><span class='cur' title='Personal Information' onclick=\"ShowUserInformation("+id[i].firstChild.data+");\" >[<u>SHOW</u>]</span></td></tr>";
            
            }
            Content+="</table></div></form></td></tr>";
            Content+="<tr bgcolor='white'><td align='right'><input type='submit' name='DeleteThisContacts' value='Delete'/>";
            Content+="<input type='submit' name='AddNewContact' value='Add' onClick='AddContact()'/>";
            Content+="</td></tr></table>";
            
            document.getElementById(resultId).innerHTML=Content;
            
        break;
    }
}


Цитата(bars80080 @  16.7.2008,  20:04 Найти цитируемый пост)
это ж ни в какие стандарты не лезет!


просто время жмет и мозги кипят, пардон, исправлюсь.



Цитата(Fortop @  16.7.2008,  20:05 Найти цитируемый пост)
Сколько у тебя таблиц в верстке?

В данной таблице три: шапка, тело в диве с скролл баром, и та которая содержит их все.

Вставляется она сюда:

Код

<span class='title'>Contacts List</span>
<script language='javascript'>
            function AddContact()
            {
                window.open("forms/add_contact.php", 'add', config='height=700px,width=500px')
                self.name='main_window'
            }
            function EditContact(id)
            {
                window.open("forms/edit_contact.php?id="+id+"", 'add', config='height=700px,width=500px')
                self.name='main_window'
            }
                        
         </SCRIPT>
<table border='0' width='850px'>
<tr>

<td width='100px'>
<? $show->ShowAlpabet();?>
</td>

<td width='350px' valign='top' id='ContactsList'>
<!--ТАБЛИЦА-->
</td>

<td valign='top' align='center' width='290px'>
<div id="UserInfo" style='text-align:left; border: 1px solid black;height:452px; width: 400px;overflow: auto;'>&nbsp;</div>
</td></tr>
</table>




Автор: Onis 16.7.2008, 22:09
проблема не со сложной таблицей а со мной. Вместо того чтобы несколько часов посидеть и подумать самому я лезу сюда (хороший у вас форум). 
Нашел ошибку и исправил.

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