带有发布按钮的表格


Table with post button

我从mysql数据库中获取数据,并想创建一个列表。在列表中,我想要一个使用post将值发送到下一页的按钮。

$result = mysql_query("SELECT * FROM all");
echo "<table border='"1'">";
echo"<tr>
    <th>ID</th>
    <th>Naam</th>
    <th>Eigenaar</th>
    <th>Plaats</th>
    <th>Bewerk</th>
    </tr>";
    ?>
    <form action="editshop.php" method="post">
    <?php
    while($rij = mysql_fetch_array($result))
  {
    ?> 

        <?php
        echo "<tr><td>".$rij['id'] . "</td><td> " . $rij['naam'] ."</td><td>";
        echo $rij['eigenaar'] . "</td><td>" . $rij['plaats']."</td>" ;
        echo"<input type='"hidden'" name='"id'" value=".$rij['id']."  /><td><input type='"submit'" /></td>";
        echo "</tr>";
    }
echo "</form></table>";

表看起来不错,但当我按下按钮,editshops.php打开时,我有echo $_POST["id"];它总是列表的最后一个id。我只想要和名单上的id相同的号码。在列表中,id显示为良好。我做错了什么(很抱歉,如果这篇文章的布局不好,这是我的第一篇文章,我不知道如何突出代码)更新将循环更改为

<?php
    while($rij = mysql_fetch_array($result))
  {
    ?> 
        <form action="bewerkshop.php" method="post">
        <?php
        echo "<tr><td>".$rij['id'] . "</td><td> " . $rij['naam'] ."</td><td>";
        echo $rij['eigenaar'] . "</td><td>" . $rij['plaats']."</td>" ;
        echo"<td><input type='"submit'" name='"id'" value='"".$rij['id']."'"  /></td>";
        echo "</tr>";
    }
echo "</form></table>";
?>

现在一切正常,但按钮的名称是id号,我可以更改它进行编辑吗。所以所有的按钮都说编辑,而不是id号

我认为您需要使用类似name="id[]"的东西来获得数组

我现在看到每行都有一个提交按钮,这意味着你需要每行制作一个表单,或者把id值放在提交按钮本身。

注意:我不确定您是想通过提交编辑多行还是只编辑一行。我的答案只对编辑多行有用。

您正在为每一行编写一个输入字段,所有字段都具有相同的名称。这就是为什么最后一个覆盖了所有其他的原因。

您需要相应地命名您的输入字段。

示例:

<input name="naam[1]" value="..." />

这里的1是您所在行的ID。

然后,您可以迭代$_POST['naam']并获取值。

foreach ($_POST['naam'] as $id => $value) {
    $otherValue = $_POST['otherValue'][$id];
    // ...
    // do something with it and add some checks if the keys exist.
}

看起来<input>在值周围缺少一组引号:

value='"".$rij['id']."'"

应该正确地表演这个把戏。

然而,如果您对每个输入使用相同的名称,PHP会将数据覆盖到最后发送的ID(因为所有隐藏的输入都有相同的名称)。

您可能需要考虑为每一行数据创建一个表单。这样您就可以知道实际发送了哪一个,或者使用一些javascript提交表单并选择要传递的正确值。

因为当你发布时,所有隐藏的输入都有相同的名称,它会给你最后一个id,你可以作为数组发布

"<input type='"hidden'" name='"id[]'" value=".$rij['id']."  />

或者通过将id传递给提交按钮本身来发布它们。