【问题标题】:PHP/HTML table row not changing to form on pressing update buttonPHP/HTML 表格行在按下更新按钮时不会更改为表单
【发布时间】:2021-12-01 02:10:20
【问题描述】:

我正在尝试制作一个表格,其中显示来自数据库的数据,并且通过按下更新按钮,该行上的(不是“lidnummer one”)单元格应更改为包含该行数据的表单输入字段作为初始输入值。

我从我找到的东西中复制了这个想法,并对其进行了更改以适合我想要显示的所有数据,但我无法在按下“更新”按钮时更改行。

echo '<tr>';
echo '<td>Lidnummer</td>';
echo '<td>Voornaam</td>';
echo '<td>Achternaam</td>';
echo '<td>Huisnummer</td>';
echo '<td>Adres</td>';
echo '<td>E-mailadres(sen)</td>';
echo '<td>Telefoonnummer(s)</td>';
echo '<td>Update</td>';
echo '<td>Delete</td>';
echo '<tr>';
for ($j = 0 ; $j < $num_members ; ++$j)
{ 
    $row = $select_result->fetch_array(MYSQLI_ASSOC);   
    
    echo '<tr>';
    if(isset($_GET['lidnummer']) && $row['lidnummer'] == $_GET['lidnummer'])
    {
        echo '<form action="includes/update_ledenlijst.php" method="POST">';
        echo '<td>' . $row["lidnummer"] . '</td>';
        echo '<td><input type="text" name="voornaam" value="' . $row['voornaam'] . '"></td>';
        echo '<td><input type="text" name="naam" value="' . $row['naam'] . '"></td>';
        echo '<td><input type="text" name="huisnummer" value="' . $row['huisnummer'] . '"></td>';
        echo '<td><select id="adres" name="adres">';
                include 'includes/select_postcodes.php';
        echo '</select>';
        echo "<td>";
        echo '<textarea>';
        toon_contactgegevens("telefoonnummers", $row, $conn, "telefoonnummer", "form_data");
        echo '</textarea>';
        echo '</td>';
        echo '<td>';
        echo '<textarea>';
        toon_contactgegevens('emails', $row, $conn, 'email', 'form_data');
        echo '</textarea>';
        echo '</td>';
        echo '<td><button type="submit" class="buttons">Save</button></td>';
        echo '<td>----</td>';
        echo '</form>';
    } else {           
        echo '<td>' . htmlspecialchars($row["lidnummer"])   . "</td>";
        echo '<td>' . htmlspecialchars($row["voornaam"])    . "</td>";
        echo '<td>' . htmlspecialchars($row["naam"])        . "</td>";
        echo '<td>' . htmlspecialchars($row["huisnummer"])  . "</td>";
        echo '<td>' . htmlspecialchars($row["adres"]) . ", " . htmlspecialchars($row["postcode"]) . " " .  htmlspecialchars($row["woonplaats"]) . '</td>';
        echo '<td>';
        toon_contactgegevens('emails', $row, $conn, 'email', "table_data");
        echo '</td>';
        echo '<td>'; 
        toon_contactgegevens("telefoonnummers", $row, $conn, "telefoonnummer", "table_data");
        echo '</td>';  
        echo '<td><a class="buttons" href="home_ledenlijst.php?id='.  $row["lidnummer"] . '" role="button">Update</a></td>';
                
    }
    echo "<td><a class='buttons' href='includes/delete_ledenlijst.php?id='" . $row['lidnummer'] . "' role='button'>Delete</a></td>"; 
    echo "</tr>";
}

这可能是我忽略的东西,而且真的很容易。但我是新手,所以我还在学习:)

【问题讨论】:

  • 有更好的方法来编写这段代码。这是老式的 PHP4 类型代码。考虑使用 Twig 之类的模板引擎将 PHP 代码与 HTML 分开。

标签: php forms html-table


【解决方案1】:

您正在检查$_GET['lidnummer'],但您正在设置id='. $row["lidnummer"]

改变

id='.  $row["lidnummer"]

lidnummer='.  $row["lidnummer"]

干杯! :)

=C=

【讨论】:

  • 我觉得自己很愚蠢... -_- 非常感谢! :D
  • 无需感到愚蠢。我们都做这样的事情。 :)
【解决方案2】:

您正在将一个名为 id 的值传递给服务器:

href="home_ledenlijst.php?id='.  $row["lidnummer"] . '"

但是寻找一个叫做lidnummer的值:

$_GET['lidnummer'] 

您如何识别这些值需要相同。尝试查找 id 值:

$_GET['id'] 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    相关资源
    最近更新 更多