PHP - 表单不保存数据到POST

时间:2016-06-08 17:13:55

标签: php

所以我的表单遇到了一个奇怪的问题。当我单击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']))由于某种原因不起作用,我真的不知道我在这里做错了什么!有人可以告诉我这里我做错了吗?

1 个答案:

答案 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']);
        }
相关问题