Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过javascript将行添加到表单don';不要屈服_Javascript_Php - Fatal编程技术网

通过javascript将行添加到表单don';不要屈服

通过javascript将行添加到表单don';不要屈服,javascript,php,Javascript,Php,Hy,我读了很多关于这个论点的讨论,但我就是找不到解决办法。 我在表单中有一个表,该表的第一行由php脚本显示,我不希望用户能够向表中添加一行,以便插入一组新的值。问题是我插入的新行没有被提交。下面是php代码 <form method="post"> <table name="elencoAltriContatti" id="elencoAltriContatti"> <button type="button" class="btn primary suc

Hy,我读了很多关于这个论点的讨论,但我就是找不到解决办法。 我在表单中有一个表,该表的第一行由php脚本显示,我不希望用户能够向表中添加一行,以便插入一组新的值。问题是我插入的新行没有被提交。下面是php代码

    <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...