Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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 如何从动态html表中读取输入值?_Javascript_Php_Html - Fatal编程技术网

Javascript 如何从动态html表中读取输入值?

Javascript 如何从动态html表中读取输入值?,javascript,php,html,Javascript,Php,Html,我有以下代码从常规输入读取值 HTML: 同样,我试图从动态生成的html表中读取输入值,但我得到了一个错误 HTML: 原因是什么?可以做哪些修改才能成功地从动态html表中读取输入值?一些建议: 元素ID必须是唯一的。您不应该对每个输入ID使用“t”。您可以将其更改为ID=“t\u$i\u$x”或类似的内容以使其唯一 您需要让服务器端脚本知道t是一个数组。要从提交的表单中获取所有值,请将元素模板中的name=t更改为name=“t[]” 第2步将中断验证功能。我会将onchange=ty()

我有以下代码从常规输入读取值

HTML:

同样,我试图从动态生成的html表中读取输入值,但我得到了一个错误

HTML:

原因是什么?可以做哪些修改才能成功地从动态html表中读取输入值?

一些建议:

  • 元素ID必须是唯一的。您不应该对每个输入ID使用“t”。您可以将其更改为
    ID=“t\u$i\u$x”
    或类似的内容以使其唯一

  • 您需要让服务器端脚本知道
    t
    是一个数组。要从提交的表单中获取所有值,请将
    元素模板中的
    name=t
    更改为
    name=“t[]”

  • 第2步将中断验证功能。我会将
    onchange=ty()
    更改为
    onchange=“ty(this)”
    。然后,您必须将
    ty()
    函数实现更改为:

    function ty(el) {
        if(!/^-?\d*$/.test(el.value)) {
            alert("Number of heads per model value must be numeric!");
        } 
    }
    
    因此,通过消除再次获取元素的需要(当您在
    onchange
    事件中调用它时,只需传入它的一个实例),就可以简化您的函数

  • 这不一定是必需的,但始终将HTML标记属性值括在引号中是一个好的做法,正如我在上面的建议中所示


  • 有几件事:输入ID必须是唯一的。您不应该对每个输入ID使用“t”。同样,您需要使
    t
    成为一个数组。将
    name=t
    更改为
    name=t[]
    。谢谢,它正在工作,但现在要在文本文件中显示数组内容,我的代码是:$ret=file\u put\u contents($file,$\u POST['t'],file\u APPEND | LOCK\u EX);$ret=文件内容($file,$\u POST['t1'],文件附加| LOCK_EX);但是上面的代码只显示数组的第一个和最后一个元素,我想我必须使用for循环,但是如何从php读取js函数的x值呢?
          file_put_contents($file, "\nEMAIL:", FILE_APPEND | LOCK_EX);
    
      $ret = file_put_contents($file, $_POST['email'], FILE_APPEND | LOCK_EX);
    
         <table>
      <tr>
      <th>Number of Models:<title="Number of Models"></th>
    
      <td><select id="numbermodels" name="numbermodels"       onchange="buildTable(this.value); buildTable4(this.value);">
    
      <option value="1">1</option >
      <option value="2">2</option >
      <option value="3">3</option >
      <option value="4">4</option >
      <option value="5">5</option >
      <option value="6">6</option >
      </select></td>
      </tr>
    
      <tr>
      <th>Number of heads per model:</th>
      <td>
      <table id="contentTable" border="1" name="contentTable">
        <!-- Fill table programmatically -->
          </table></td>
      </tr>
    
          function buildTable(val)
          {
         var myTable =document.getElementById("contentTable");
        var j=val;
            var rows = [];
        var cells = [];
    
         while (myTable.hasChildNodes()) {
         myTable.removeChild(myTable.lastChild);
          }
    
    
          for( var i = 0; i < 1; i++ )
           {
           rows[i] = myTable.insertRow(i);
           if(i%3==2)rows[i].addClass("every3rdrow");
             cells[i] = [];
    
           for( var x = 0; x < j ; x++ )
          {
            cells[i][x] =document.createElement((x==0)?"th":"td");
            cells[i][x].innerHTML = (x==0)?"<input id=t onchange=ty() name=t>":"<input     id=t onchange=ty()>";
            rows[rows.length - 1].appendChild(cells[i][x]);
            }
            }
    
             }
                 buildTable();  
    
             function ty(){
          $ad = document.getElementById("t").value;
          if(!/^-?\d*$/.test($ad)) {
           alert("Number of heads per model value must be numeric!");
           } 
           } 
    
          file_put_contents($file, "\n Number of Heads per Model:", FILE_APPEND | LOCK_EX);
    
    $ret = file_put_contents($file, $_POST['t'], FILE_APPEND | LOCK_EX);
    
    function ty(el) {
        if(!/^-?\d*$/.test(el.value)) {
            alert("Number of heads per model value must be numeric!");
        } 
    }