Hoe kun je IN PHP uitvragen welke waarde 'selected' waarbij nog geen submit heeft plaats gevonden?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nkamp Kamp van de

nkamp Kamp van de

30/05/2017 12:37:10
Quote Anchor link
Hallo,

Ik vul een dropdown met datums. Wat correct werkt en geen problemen geeft.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?PHP
$dropdown
= '<select id="dropdown_date" name="dropdown_date" onchange="this.form.submit();">';

        $i = 0;

        foreach($aintervalDates as $date) {

            $dropdown .= '<option value="'.$date.'" ';

            if ( ((isset($_POST['dropdown_date'])) && ($_POST['dropdown_date'] == $date)) || ((empty($_POST['dropdown_date'])) && ($i == 0)) )

                $dropdown .= 'selected="selected"';

 

            $dropdown .= ' >'.$date.'</option>';  

            $i++;

        }
//END foreach($aintervalDates as $date) {

        $dropdown .= "</select>";
?>


Zoals je ziet is het afhankelijk of de pagina initieel geopend wordt, dan wordt het eerste dropdown item 'selected' en als iemand een datum wijzigt dan kun je gewoon met $_Post uitvragen.

Vervolgens heb ik deze datum als input voor een volgende PHP functie nodig voor een dB query.

Natuurlijk ik kan testen of empty($_POST['dropdown_date']) is.

Kan ik in PHP de waarde uitvragen van de option die 'selected' is? (Sorry ik zet het er maar even bij server sided voor de duidelijkheid - en niet met javascript/jQuery. Hier zijn legio voorbeelden van)

Of kan ik met PHP de option met een bepaalde index selecteren? Bij deze oplossing zou ik dan altijd de option met index [0] kunnen kiezen.

Nico
 
PHP hulp

PHP hulp

30/11/2024 05:50:46
 
- SanThe -

- SanThe -

30/05/2017 12:48:38
Quote Anchor link
Bedoel je op het moment dat de option wordt gewijzigd.
Nee, dat kan php niet, javascript kan dat wel.
 
Thomas van den Heuvel

Thomas van den Heuvel

30/05/2017 16:49:43
Quote Anchor link
Misschien is het een optie om een dummy-option te introduceren? Als het probleem is dat je anders geen onderscheid kunt maken tussen de eerste optie die al dan niet geselecteerd wordt, en ook werkt dan je onchange niet echt :p.

Voeg een optie toe?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<option value="">- selecteer -</option>
 
Ozzie PHP

Ozzie PHP

30/05/2017 17:13:38
Quote Anchor link
Wat is precies jouw vraag?

De titel van dit topic luidt:

"Hoe kun je IN PHP uitvragen welke waarde 'selected' waarbij nog geen submit heeft plaats gevonden?"

Jij zet zelf in jouw code als het formulier nog niet gesubmit is, de eerste datum op selected. Die eerste datum weet je dan toch al?
 
Thomas van den Heuvel

Thomas van den Heuvel

30/05/2017 17:18:25
Quote Anchor link
Maar dat is waarschijnlijk onbedoeld :). Als je wilt dat iemand een bewuste keuze maakt dan kun je dat op bovenstaande wijze simpel afdwingen.
 
Ozzie PHP

Ozzie PHP

30/05/2017 17:24:03
Quote Anchor link
Met je eens Thomas ... alleen weet ik niet of de TS dat ook bedoelt ;-)

"Hoe kun je IN PHP uitvragen welke waarde 'selected' waarbij nog geen submit heeft plaats gevonden?"

Zo luidt de vraag ... die waarde is dus altijd de 1e waarde in de selectbox. Daarom begrijp ik de vraag (of de intentie daarvan) ook niet helemaal ... :-s
 
Thomas van den Heuvel

Thomas van den Heuvel

30/05/2017 17:49:38
Quote Anchor link
Het antwoord daarop is "niet" :). De informatie moet eerst terug naar de server. De browser selecteert de optie met de property selected (met waarde selected), of als deze niet aanwezig is de eerste optie in de lijst. En als je van de eerste optie dan een dummy-optie maakt kun je altijd een andere (valide) keuze registreren met het onchange-event.
 
Ozzie PHP

Ozzie PHP

31/05/2017 00:37:00
Quote Anchor link
Maar de TS vraagt welke waarde selected is ** als er nog niet is gesubmit **. Dat is toch gewoon automatisch de eerste waarde in de selectbox? Die zet hij namelijk zelf op selected. Vervolgens wijzigt een bezoeker de waarde en submit hij ... via $_POST komt dan de gewijzigde waarde binnen.
 
Nkamp Kamp van de

nkamp Kamp van de

11/06/2017 22:53:29
Quote Anchor link
Hallo,

Ok, het is mij duidelijk. Het verhaal is iets anders. Ik bouw de drowpdown <select> helemaal in php op en dan weet je welke selected. Gevoelsmatig zeg ik je bouwt hem in PHP op dan moet je ook kunnen weten welke op selected is gezet.
Maar dat is gevoelsmatig.
Hierdoor dacht ik niet dat het niet van invloed zou zijn maar wat ik er niet bij verteld had is dat ik het via een method in een bepaalde class doe. Deze method retouneert de complete drowpdown met maand einddata etc. Deze echo ik simpelweg in mijn presentatie laag.

Wat ik nu gedaan heb, en dat is OO-technisch denk ik netjes of zelfs zo het hoort. Ik sla de selected waarde op in een class private property. Deze haal ik dan via een 'getSeletedItem' method op en kan ik hem gebruiken in mijn signatuur voor mijn volgende functie!

Opgelost, bedankt voor het mee denken
Gewijzigd op 11/06/2017 22:55:44 door nkamp Kamp van de
 
Thomas van den Heuvel

Thomas van den Heuvel

12/06/2017 00:32:41
Quote Anchor link
Hm, je zou ook een abstracte klasse FormField kunnen hebben met een protected value. En een form class met een routine voor het initialiseren van waarden van deze formuliervelden. En vervolgens een routine voor het afdrukken van formfields. Wat een waarde betekent voor een FormField hangt af van dat specifieke element.
 
Nkamp Kamp van de

nkamp Kamp van de

05/07/2017 12:25:27
Quote Anchor link
Hallo Thomas,

Bedankt voor het meedenken/idee. Dat is goeie, (misschien) de volgende keer ga ik het op die manier oplossen!

Nico
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.