通过javascript将行添加到表单don';不要屈服
Hy,我读了很多关于这个论点的讨论,但我就是找不到解决办法。 我在表单中有一个表,该表的第一行由php脚本显示,我不希望用户能够向表中添加一行,以便插入一组新的值。问题是我插入的新行没有被提交。下面是php代码通过javascript将行添加到表单don';不要屈服,javascript,php,Javascript,Php,Hy,我读了很多关于这个论点的讨论,但我就是找不到解决办法。 我在表单中有一个表,该表的第一行由php脚本显示,我不希望用户能够向表中添加一行,以便插入一组新的值。问题是我插入的新行没有被提交。下面是php代码 <form method="post"> <table name="elencoAltriContatti" id="elencoAltriContatti"> <button type="button" class="btn primary suc
<form method="post">
<table name="elencoAltriContatti" id="elencoAltriContatti">
<button type="button" class="btn primary success" onClick="showNewContatti();" name="nuovo">NUOVO</button>
<tr>
<td><p><strong>Nome</strong></p></td>
<td><p><strong>Qualifica</strong></p></td>
<td><p><strong>Email</strong></p></td>
<td><p><strong>Telefono</strong></p></td>
<td></td>
</tr>
<?php
echo "<tr>";
echo "<td><p><input type=\"text\" id=\"nome\" name=\"NOME[]\" value=\"".$row['NOME']."\" class=\"input-text3\" onchange=\"selectCheckbox('".$i."')\"></p></td>";
echo "<td><p><input type=\"text\" id=\"qualifica\" name=\"QUALIFICA[]\" value=\"".$row['QUALIFICA']."\" class=\"input-text3\" onchange=\"selectCheckbox('".$i."')\"></p></td>";
echo "<td><p><input type=\"text\" id=\"email\" name=\"EMAIL[]\" value=\"".$row['EMAIL']."\" class=\"input-text3\" onchange=\"selectCheckbox('".$i."')\"> </p></td>";
echo "<td><p><input type=\"text\" id=\"telefono\" name=\"TELEFONO[]\" value=\"".$row['TELEFONO']."\" class=\"input-text3\" onchange=\"selectCheckbox('".$i."')\"></p></td>";
echo "<td><input id=\"".$i."\" name=\"CHECKBOX[]\" type=\"checkbox\" value=\"\" style=\"float:right\"></td>";
echo "</tr>";
?>
</table>
<div class="control-group">
<div class="controls">
<button type="reset" name="reset" class="btn info">CANCELLA</button>
<button type="submit" name="submit" class="btn info" >SALVA</button>
</div>
</div>
</form>
但我仍然有同样的问题,我还能做什么 在innerHTML行中,传递的名称属性与原始行中相同。表单元素以名称=值对的形式发布。两个表单元素不能具有相同的名称 要在javascript中添加表单元素,应构建名称属性dynamicali:
i=1;
name='nome'+i;
html="<input type='text' name='" + name + "' />";
i++; //etc...
i=1;
name='nome'+i;
html=“”;
i++//等
innerHTML没有在DOM中“注册”新元素。您需要使用createElement('input')etcbut的完整方法,但这样我会得到许多具有不同ID的元素,我想创建数组,多个具有相同名称但具有[]的元素,例如nome[],不应该创建包含所有值的数组吗?否,关键是不能提交具有相同名称属性的多个表单元素。注意,在我的代码中,name属性是如何来自变量的。在您的中,它是字符串的一部分。有关如何使用数组,请参阅:()
var table = document.getElementById('elencoAltriContatti');
var lastRow = table.rows.length;
var Iterator=lastRow;
var row=table.insertRow(lastRow);
var nome = row.insertCell(0);
var cell = document.createElement('input');
cell.type = 'text';
cell.name = 'nome' + Iterator;
cell.id = 'nome' + Iterator;
cell.className= 'input-text3';
cell.onchange= function(){
selectCheckbox(Iterator);
};
nome.appendChild(cell);
i=1;
name='nome'+i;
html="<input type='text' name='" + name + "' />";
i++; //etc...