所以我的表单遇到了一个奇怪的问题。当我单击oplsaan按钮时,它不会运行 if(isset($ _ POST ['opslaan']))中的代码。问题是PHP不会将表单数据保存到$ _POST数组。例如,当我以下列形式单击opslaan时:
if(isset($_POST['wijzigen']))
{
$query_selecteren = 'SELECT *
FROM contacten';
$result = mysqli_query($link, $query_selecteren);
echo '<form id="wijzigingscherm" method="post" action="' . $_SERVER['PHP_SELF'] . '">';
echo '<table>
<tr>
<th>Keuze</th>
<th>Afbeelding</th>
<th>Voornaam</th>
<th>Achternaam</th>
<th>Woonplaats</th>
<th>Telefoonnummer</th>
<th>Adres</th>
<th>Postcode</th>
<th>Opmerking</th>
</tr>';
foreach ($result as $rij) {
echo '<tr>';
$rijnr%2==0 ? $rijkleur='#6B9ED1' : $rijkleur='#99B3CC';
echo '<td style="background-color' . $rijkleur .'"> <input type="checkbox" name="checkedUser" value="' . $rij['contact_id'] . '"/>';
echo '<td style="background-color'.$rijkleur.'"> <img src="ImgPersonen/profiel.jpg"/>';
echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="voornaam" placeholder="' . $rij['vnaam'] .'"/></td>';
echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="achternaam" placeholder="' . $rij['anaam'] . '"</td>';
echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="woonplaats" placeholder="' . $rij['wplaats'] . '"/></td>';
echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="telefoonnummer" placeholder="' . $rij['tnummer'] . '"/></td>';
echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="adres" placeholder="' . $rij['adres'] . '"/></td>';
echo '<td style="background-color:' . $rijkleur . '"> <input size="7" type="text" name="postcode" placeholder="' . $rij['postcode'] . '"/></td>';
echo '<td style="background-color:' . $rijkleur . '"> <input size="7" type="text" name="opmerking" placeholder="' . $rij['opmerking'] . '"/></td>';
$rijnr++;
echo '</tr>';
}
echo '</table>
<input type="submit" name="opslaan" style="width:15%;" value="Opslaan" />
<input type="submit" name="annuleren" style="width:15%;" value="Annuleren" />
</form>';
}
它应该运行我放在session_start
下的代码if(isset($_POST['opslaan']))
{
$query_opslaan = 'a query using the post data';
mysqli_query($link, $query_opslaan) or die(mysqli_error($query_opslaan));
header('location:'.$_SERVER['PHP_SELF']);
}
但奇怪的是,if(isset($ _ POST ['osplaan']))由于某种原因不起作用,我真的不知道我在这里做错了什么!有人可以告诉我这里我做错了吗?
答案 0 :(得分:1)
您的某个输入字段未正确关闭: achternaam 因此可能会出现一些非常意外的结果。以下是您可能想要尝试的内容,顺便提一下;您的表单标记应嵌套在循环中以使其起作用:
表格部分
<?php
if(isset($_POST['wijzigen'])) {
$query_selecteren = 'SELECT *
FROM contacten';
$result = mysqli_query($link, $query_selecteren);
$count = 1;
echo '<table>
<tr>
<th>Keuze</th>
<th>Afbeelding</th>
<th>Voornaam</th>
<th>Achternaam</th>
<th>Woonplaats</th>
<th>Telefoonnummer</th>
<th>Adres</th>
<th>Postcode</th>
<th>Opmerking</th>
<th>Edits</th>
</tr>';
foreach ($result as $rij) {
echo '<form id="wijzigingscherm" method="post" action="' . $_SERVER['PHP_SELF'] . '">';
echo '<tr>';
$rijkleur = ($rijnr%2==0) ? '#6B9ED1' : '#99B3CC';
echo '<td style="background-color' . $rijkleur .'"> <input type="checkbox" name="checkedUser" value="' . $rij['contact_id'] . '"/>';
echo '<td style="background-color' .$rijkleur.'"> <img src="ImgPersonen/profiel.jpg"/>';
echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="voornaam" placeholder="' . $rij['vnaam'] . '" value="' . $rij['vnaam'] . '" /></td>';
echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="achternaam" placeholder="' . $rij['anaam'] . '" value="' . $rij['anaam'] . '" /></td>';
echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="woonplaats" placeholder="' . $rij['wplaats'] . '" value="' . $rij['wplaats'] . '" /></td>';
echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="telefoonnummer" placeholder="' . $rij['tnummer'] . '" value="' . $rij['tnummer'] . '" /></td>';
echo '<td style="background-color:' . $rijkleur .'"> <input size="7" type="text" name="adres" placeholder="' . $rij['adres'] . '" value="' . $rij['adres'] . '" /></td>';
echo '<td style="background-color:' . $rijkleur . '"> <input size="7" type="text" name="postcode" placeholder="' . $rij['postcode'] . '" value="' . $rij['postcode'] . '" /></td>';
echo '<td style="background-color:' . $rijkleur . '"> <input size="7" type="text" name="opmerking" placeholder="' . $rij['opmerking'] . '" value="' . $rij['opmerking'] . '" /></td>';
echo '<td style="">
<input type="submit" name="opslaan" style="width:15%;" value="Opslaan" /><br />
<input type="reset" name="annuleren" style="width:15%;" value="Annuleren" /><br/>
</tr>;
</form>';
$rijnr++;
$count++;
}
echo '</table>';
}
处理部分
if(isset($_POST['opslaan'])){
//THIS IS WHERE AND WHEN YOU GATHER THE POSTED DATA FROM THE FORM...
$voorname = isset($_POST['voorname']) ? htmlspecialchars(trim($_POST['voorname'])) : null;
$achternaam = isset($_POST['achternaam']) ? htmlspecialchars(trim($_POST['achternaam'])) : null;
$woonplaats = isset($_POST['woonplaats']) ? htmlspecialchars(trim($_POST['woonplaats'])) : null;
$telefoonnummer = isset($_POST['telefoonnummer']) ? htmlspecialchars(trim($_POST['telefoonnummer'])) : null;
$adres = isset($_POST['adres']) ? htmlspecialchars(trim($_POST['adres'])) : null;
$postcode = isset($_POST['postcode']) ? htmlspecialchars(trim($_POST['postcode'])) : null;
$opmerking = isset($_POST['opmerking']) ? htmlspecialchars(trim($_POST['opmerking'])) : null;
// NOW YOU CAN USE THE ABOVE VARIABLES IN YOUR QUERY, SHOULD YOU NEED TO...
$query_opslaan = 'a query using the post data';
mysqli_query($link, $query_opslaan) or die(mysqli_error($query_opslaan));
header('location:'.$_SERVER['PHP_SELF']);
}