2017-08-15 136 views
1

我有一个表格中的动态表,其中取决于用户输入行将被添加到表中。表格列有ID,名称,游戏类型(动态列表从数据库表中获取)。如何将动态列表添加到Jquery中HTML表格的每一行?

现在,当用户在学生领域的号任意数量和点击加载游戏按钮,我期待这个表应该扩大到许多行,以便用户可以在字段中插入数据。

它的工作也是如此,但问题是表中的第三个字段包含一个列表。我无法理解如何在表格的每一行填充game_id字段的列表。

代码

   <?php 
       $db = new PDO("sqlite:c:/sqlite/games.db"); 
       $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
       $query_game = $db->prepare("select distinct games as di from outdoor_games;"); 
       $query_game->execute(); 
       $data = $query_game->fetchAll(); 

      ?> 
      <!DOCTYPE html> 
      <html> 
      <head> 
       <title>Access form</title> 
       <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
       <script language="JavaScript"> </script> 
      </head> 
      <body> 
       <form action="<?php $_SERVER['PHP_SELF'];?>" method="post"> 
       <h2 style="text-align:center;">Test Form</h2> 

       <fieldset style="width: 1000px;"> 

          <legend><b> Source Profile</b></legend> 

          <TABLE id="STable" width="350px" border="1"> 
          <tr> 
           <th bgcolor="WHITESMOKE">Student_ide</th> 
           <th bgcolor="WHITESMOKE">Student_Name</th> 
           <th bgcolor="WHITESMOKE">Game Id </th> 
          </tr> 
          <TR> 
           <td><input type= "text" name= "Stu_Id[]" value=1 /> </td> 
           <td><input type= "text" name= "Stu_Name[]" /> </td> 
           <td><select name= "Game_id[]" /> 
             <option value=""><b>Games</b></option> 
              <?php foreach ($data as $row){echo '<option value="' . $row['di'] . '">' . $row ['di'] . '</option>';} ?> 
            </select> 
          </tr>  
          </td> 
          </TR></TABLE></br> 
          <label>No. of Students <input type= "text" id="s_cnt" name= "d_Count"></label> 
          <button type="button" class='loadgames' >Load Games</button> 
          <input type="submit" name ="add_SP" value ="Add Student Info" style="float: right;" /> </br> </br> 

       </fieldset ></br> </br> 
       <input type="submit" name ="exit" value ="EXIT" /> 

      </form> 
      <script> 

      $(".loadgames").on('click',function(){ 
         var num = $("#s_cnt").val(); 
         $("#STable tr").slice(2).remove(); 
         for (var i = 2; i <= num; i++) 
         { 
          var data = "<tr><td><input type='text' id='Stu_Id"+i+"' class='Stu_Id' name='Stu_Id[]' value = "+i+" /></td><td><input type='text' id='Stu_Name"+i+"' name='Stu_Name[]' /></td> <td><select name= 'Game_id[]' /><option value=""><b>Games</b></option>"+<?php foreach ($data as $row){echo '<option value="' . $row['di'] . '">' . $row ['di'] . '</option>';} ?>+"</select></tr>"; 
          $("#STable").append(data); 
         } 
       }); 

      </script> 
      </body> 
      </html> 
+0

我很抱歉,我是新来的论坛....有人可以帮助我了解为什么这个问题被拒绝投票,以便我可以更正或更好地解释它。 – binee

+0

嗨,欢迎来到SO。你的问题可能被低估了,因为它不清楚“我希望列表添加到每一行”很难理解。我会研究[如何创建一个最小的,可验证的示例](https://stackoverflow.com/help/mcve) - 只是一个简单的表格和您试图对其执行的操作,可能与代码无关你的实际项目。祝你好运! – theFunkyEngineer

+0

@theFunkyEngineer,谢谢你提到...我已经更新了这个问题。 – binee

回答

0

我可以达到同样具有以下的jQuery代码:

$(".loadgames").on('click',function() 
    { 
     var num = $("#s_cnt").val(); 
     $("#STable tr").slice(2).remove(); 
     for (var i = 2; i <= num; i++) 
     { 
       var data = "<tr><td><input type='text' id='Stu_Id"+i+"' class='Stu_Id' name='Stu_Id[]' value = "+i+"></td><td><input type='text' id='Stu_Name"+i+"' name='Stu_Name[]'/></td><td><select name='Game_id[]'><option value='null'>Games</option><?php foreach ($data as $row){echo "<option value=".$row['di'] . ">" .$row['di']. "</option>";}?></select></td></tr>"; 
       $("#STable").append(data); 
     } 
}); 
相关问题