PHP While表格中的表格循环

时间:2016-08-22 16:13:13

标签: php forms while-loop

我正在尝试创建一个表格,您可以在其中注销'填充它的项目。目前,该表看起来很好,但是当你去“注销”时。一个项目 - 它只会作用于最新的mysql行['目录']以及随附的最新文本字段。

当我说'退出'时我的意思是将某人的首字母插入与该项相关联的mysql表行。我首先当然需要正确处理POST提交。

这可能没有完美表达,所以请查看我目前的代码;

echo "<form action='signoff.php' method='post' id='signoffform' style='display:inline;'>";
echo "<p3><table id='myTable3' class='tablesorter'> 
<thead> 
<tr>
    <th>To Delete</th>
    <th>Directory</th> 
    <th>Space Used</th>
</tr> 
</thead>";

while($row = mysqli_fetch_array($result))
{

echo "<tr>";
echo "<td><input type='text' name='signoff' id='signoff' form='signoffform' /><button>Sign Off</button> Signed Off By:" . $row['signoff'] . "</td>";
echo "<td><input type='text' name='dir' id='dir' form='signoffform' value='" . $row['directory'] . "' readonly /></td>";
echo "<td>" . $row['used'] . "</td>";
echo "</tr>";

}
echo "</table></p3>";
echo "</form>";

signoff.php

<?php
echo $_POST["signoff"];
echo "<br />";
echo $_POST["dir"];
?>

请随时索取更多信息

1 个答案:

答案 0 :(得分:1)

  

...当你去#39;注销&#39;一个项目 - 它只会作用于最新的mysql行[&#39;目录&#39;]以及随附的最新文本字段。

问题在于您的name属性,name='signoff'name=dir。循环遍历结果集时,name属性值将在每次迭代中被覆盖。因此,无论您点击什么按钮,您都将获得最后一行的值。

所以解决方案会是这样的:

按以下方式更改while循环,

// your code

while($row = mysqli_fetch_array($result)){
    echo "<tr>";
    echo "<td><input type='text' name='signoff[".$row['directory']."]' id='signoff' form='signoffform' /><button>Sign Off</button> Signed Off By:" . $row['signoff'] . "</td>";
    echo "<td><input type='text' name='dir[".$row['directory']."]' id='dir' form='signoffform' value='" . $row['directory'] . "' readonly /></td>";
    echo "<td>" . $row['used'] . "</td>";
    echo "</tr>";
}

// your code

signoff.php 页面上,按以下方式处理表单,

foreach($_POST['dir'] as $dir){
    if(!empty($_POST['signoff'][$dir])){
        $signoff = $_POST['signoff'][$dir];

        // That how you can get $dir and the corresponing $signoff value

    }
}

旁注:如果您想查看整个$_POST数组结构,请在 signoff.php 页面上执行var_dump($_POST);