如何为表格的每一行放置一个表格

Posted

技术标签:

【中文标题】如何为表格的每一行放置一个表格【英文标题】:How can I put a form for each row of a table 【发布时间】:2018-08-03 03:19:39 【问题描述】:

事情就是这样,我需要更新表格中的选定行,所以我为它的每一行放置一个表单(每一行都有一个更新按钮),当我点击更新时,它不会提交,实际上,什么也没做。

这是我的代码,我将不胜感激。

<div class="table-responsive">
    <table class="table table-condensed">
        <thead class="">
            <tr>
                <th>ID</th>
                <th>Project</th>
                <th>Type</th>
                <th>Kick-Off Date</th>
                <th>Deadline Date</th>
                <th>Current Ninja</th>
                <th>Status</th>
                <th></th>
            </tr>
        </thead>
        <tbody>
            <?php   
                $q = $_GET['q'];
                $sql="SELECT pr.project_name, pr.project_type, pr.project_start_date, pr.project_end_date, us.nombre, st.id_status, pr.id_project FROM NT_Projects as pr LEFT JOIN Project_Status as st on st.id_status = pr.id_status LEFT JOIN NT_Clients as cl on cl.id_client = pr.id_client LEFT JOIN usuarios as us on us.username = pr.username WHERE cl.id_client = $q";
                $result = mysql_query($sql) or die(mysql_error());
                $upt = 1;
                while($row = mysql_fetch_array($result))       
                    echo '
                    <div id="update-project">
                        <form method="post" action="sistema/_actions/updateProject.php" id="res-update-proj-'.$upt.'">';
                            $kickoff = date('m/d/Y', strtotime($row[2]));
                            $deadline = date('m/d/Y', strtotime($row[3]));
                            echo '<tr>';
                            echo '<td >
                                    <input class="form-control" name="id_Proj" type="text" value="'.$row[6].'" readonly>
                                  </td>';
                            echo "<td>" . $row[0] . "</td>";
                            echo "<td>" . $row[1] . "</td>";
                            echo "<td>" . $kickoff . "</td>";
                            echo "<td>" . $deadline . "</td>";
                            echo "<td>" . $row[4] . "</td>";
                            echo '<td >';
                            echo '<select class="form-control" name="proj_Status">';
                                $qStatus = "SELECT * FROM  Project_Status;";
                                $exStatus = mysql_query($qStatus);
                                while($rStatus = mysql_fetch_array($exStatus))
                                
                                    if($row[5] == $rStatus[0])
                                        echo '<option value="'.$rStatus[0].'" selected>'.$rStatus[1].'</option>';
                                    else
                                        echo '<option value="'.$rStatus[0].'">'.$rStatus[1].'</option>';
                                
                            echo '</select>
                                </td>
                                <td class="text-center">
                                    <button type="submit" class="btn btn-sm btn-primary btn-UProj" value="res-update-proj-'.$upt.'">Update</button>
                                    <div id="res-update-proj-'.$upt.'" style="width: 100%; margin:0px; padding:0px;"></div>
                                </td>
                            </tr>
                        </form>
                    </div>';
                $upt = $upt + 1;
                
            ?>
        </tbody>    
    </table>
</div>

正在使用 ajax 从另一个 html 调用该代码

【问题讨论】:

你得到的错误是什么?您是否尝试过在 action 方法中打印出 the_POST 以查看您得到的结果? 我的按钮没有任何作用 是的,还是什么都没有 嗬嗬嗬嗬! mysql 已弃用!使用mysqlipdo 当您的页面呈现时。请检查元素并检查表单标签开始和结束的位置。表格标签必须出现在表格标签之前。 【参考方案1】:

根据网络标准,您不能将表格标签与 div 和表单混合使用。如果你这样做了,浏览器的 HTML 解析器会以不可预知的方式混合你的标签。

我知道的唯一解决方案是使用 CSS:

<div style="display: table">
  <form style="display: table-row">
    <div> style="display: table-cell"></div>
  </form>
</div>

【讨论】:

以上是关于如何为表格的每一行放置一个表格的主要内容,如果未能解决你的问题,请参考以下文章

如何为表格中的每一行创建一个删除按钮?

如何为表格的每一行创建展开/折叠功能?角6

PHP & CSS:如何为表格的每一行获得悬停效果?

如何为每一行创建 HTML 表格按钮并将第一列的值输入到 Flask 函数进行查询

Power Query:如何为列表中的每一行添加列

SQL:如何为一列中具有重复值的每组行选择一行?