Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Проблема с динамическим HTML / 3 сообщений из 3, страница 1 из 1
18.01.2006, 20:12
    #33490375
AlexG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с динамическим HTML
Я добавляю в таблицу строки динамически. Вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
function CreateOrderRow()
{
	var table_body = document.getElementById("table_body")
	var count = parseInt(document.getElementById("count").value)
	
	var new_row = document.createElement("tr")
	for(i =  0 ; i <  8 ; i++)
	{
		var cell = document.createElement("td");
		switch(i) {
			case  0 : cell.className = "row_num"; break;
			case  1 :
			case  7 : cell.className = "left"; break;
			default: cell.className = "default"; break;			
		}
		
		switch(i) {
			case  0 : cell.innerText = count; break;
			case  1 : var radio = document.getElementById("prod_type");
					if (radio.checked == true)
						cell.innerHTML = "<input name=type[] type=hidden value=forged>forged";
					else
						cell.innerHTML = "<input name=type[] type=hidden value=rolled>rolled";
					break;
			case  2 : 
				var steel_grade = document.getElementById("steel_mark").value;
				cell.innerHTML = "<input name=steel_grade[] type=hidden value=" + steel_grade + ">" + steel_grade; break;
			case  3 : 
				var ht = document.getElementById("termo").value;
				cell.innerHTML = "<input name=ht[] type=hidden value=" + ht + ">" + ht; break;
			case  4 : 
				if (isNaN(parseFloat(document.getElementById("diametr").value)) == false){
					var diameter = document.getElementById("diametr").value;
					cell.innerHTML = "<input name=diameter[] type=hidden value=" + diameter + ">" + diameter;
				}
				else {
					alert("Diameter is not set");
					return false;
				}
				break;
			case  5 :
				if (isNaN(parseFloat(document.getElementById("quantity").value)) == false){
					var quantity = document.getElementById("quantity").value;
					cell.innerHTML = "<input name=quantity[] type=hidden value=" + quantity + ">" + quantity;
				}
				else {
					alert("The quantity is not set");
					return false;
				}
				break;
			case  6 :
				if (isNaN(parseFloat(document.getElementById("long").value)) == false){
					var length = document.getElementById("long").value;
					cell.innerHTML = "<input name=length[] type=hidden value=" + length + ">" + length;
				}
				else {
					alert("The length is not set");
					return false;
				}
				break;
			case  7 :
				var comments = document.getElementById("comment_text").innerText;
				cell.innerHTML = "<input name=comments[] type=hidden value=" + comments + ">" + comments; break;
		}
		
		new_row.appendChild(cell);
	}
	document.getElementById("count").value = count+ 1 ;
	table_body.appendChild(new_row);
}

Кусок html куда где находится таблица:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
<script>
function SubmitForm(){
 document.forms["frm_order"].submit();
}
</script>

<form id=frm_order method=POST>
	<input id=send_order name=send_order type=hidden value= 1 >
	<input id=count name=count type=hidden value= 0 >
	<table width= 100 %><tr><td width= 65 %>Specify the address of e-mail for a feedback</td><td><input id=sender name=sender style=width: 150  type=text></td></tr></table>
	<table class=info align=center id=order_table cellpadding= 3  cellspacing= 0 >
	<thead>
		<tr>
		<th width= 50 >#</th>
		<th width= 110 >Type</th>
		<th width= 90 >Steel grade</th>
		<th width= 50 >H/T</th>
		<th width= 60 >Diameter</th>
		<th width= 60 >Quantity</th>
		<th width= 60 >Length</th>
		<th width= 200 >Comments</th>
		</tr>
	<tbody id=table_body>	
	</table>
	<table width= 100 %>
	<tr>
		<td width= 70 %>Your order will be sent on a e-mail <a href="mailto:anna@aurora-griff.de">anna@aurora-griff.de<;/a></td>
		<td align=right><input type=button onclick="SubmitForm()" value="Send order"></td>
	</tr>
	</table>
</form>

После этого отправляю форму и сталкиваюсь со следующей ситуацией. В Opera переменная $_POST не содержит динамически сформированных данных, только данные статических элементов. В IE при этом все нормально отрабатывает.

Как всегда классический вопрос: в чем дело и как побороть?
...
Рейтинг: 0 / 0
18.01.2006, 22:10
    #33490477
Еретик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с динамическим HTML
Код: plaintext
1.
cell.innerHTML = "<input name=type[] type=hidden value=forged>forged";

Плохо это..

Лучше как-нибудь так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
var oNewItem = document.createElement("INPUT");
     oNewItem.name='type[]'	;
     oNewItem.type='hidden';
     oNewItem.value='forget'	;

     cell.insertAdjacentElement("afterBegin",oNewItem);


Хотя фиг ее знает, оперу эту
...
Рейтинг: 0 / 0
18.01.2006, 22:48
    #33490509
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с динамическим HTML
автор
tr = table.insertRow(0);
td = tr.insertCell(0);
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Проблема с динамическим HTML / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]