Я добавляю в таблицу строки динамически. Вот так:
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 куда где находится таблица:
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 при этом все нормально отрабатывает.
Как всегда классический вопрос: в чем дело и как побороть?