Ik vul een dropdown vanuit een db.:

<tr>
                            <td>&nbsp;<input size="20" type="text" name="DatumTijdCW1" value="<?php echo date('Y-m-d H:i:s'); ?>" readonly class="form_datetime"></td>
                            <td>&nbsp;<input type="text" name="tijdsduurCW1" size="8"></td>
                            <td>
                                <select name="ploegCW1" id="employee" style=" height:26px;">
                                <option value="" disabled selected="selected[]" multiple="multiple">Geen</option>
                                <?php
                                    $pdo = Database::connect();
                                    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                                    $sql = "SELECT * FROM Ploegen ";
                                    $q = $pdo->prepare($sql);
                                    $q->execute(array($Id,$Ploeg));
                                    Database::disconnect();
                                    while ($row = $q->fetch(PDO::FETCH_ASSOC)) {
                                        echo "<option value='" . $row['Ploeg'] . "'>" . $row['Ploeg'] . "</option>";}
                                ?>
                                </select>
                            </td>
                        </tr>


De waarde hiervan sla ik als laatste op, maar stel iemand wil tussendoor opslaan en hij klikt op de knop word de dropdown weer gereset en moeten ze de naam opnieuw selecteren uit de lijst.
Hoe kan ik ervoor zorgen dat die naam terug komt in de dropdown?
Regel 15 vervangen door zoiets :

$selected = ( $row['Ploeg'] == $_POST['ploegCW1'] ? 'selected' : '' );
echo "<option value='" . $row['Ploeg'] . "' " . $selected . " >" . $row['Ploeg'] . "</option>";


Eventueel de eerste regel uitbreiden afhankelijk van wat er in $_POST['ploegCW1'] zit.
Beter om bij te houden met $_SESSION in plaats van $_POST. De verwerk-actie zou een aparte actie moeten zijn, die losstaat van de actie voor het weergeven van het formulier.

Een webpagina zou op elk moment maar één ding moeten doen. Op het moment dat je het weergeven van een formulier en het verwerken ervan gaat combineren in eenzelfde handeling wordt je code heel snel één grote brei.
@Adaptive.
Ik heb je code geprobeerd maar in de echo regel zit een fout, maar kan hem niet achterhalen wat de fout is want hij laat nu een 500 error zien, haal ik die echo regel weg dan is niets aan de hand.


update.
Heb het gevonden , wat dom van me, gewoon } vergeten erbij te zetten.
Een 'Error 500' zegt ons vaak niet veel. Gelukkig zijn er ook error-logs die meer duidelijkheid scheppen.
Maar fijn dat het opgelost is. :-)
- Ariën - op 16/11/2018 21:39:14

Een 'Error 500' zegt ons vaak niet veel. Gelukkig zijn er ook error-logs die meer duidelijkheid scheppen.
Maar fijn dat het opgelost is. :-)



Waar staan die normaal located?
Buiten je webroot. De locatie verschilt vaak.
Vaak buiten de webroot, op sommige configuraties is het error_log in dezelfde map als het script. Ligt een beetje aan het gebruikte hosting platform.
Verken je directorystructuur eens met een FTP-client, waarschijnlijk staat er boven je webroot wel ergens een directory /logs o.i.d..

Reageren