db bevragen a.d.h.v. een <select>

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

G. de Graaf

G. de Graaf

19/04/2005 20:29:00
Quote Anchor link
Hee mensen,

Ben een beginnend php'er en had een vraagje.

Ben voor een eigen site bezig met een verjaardag kalender. Mensen kunnen een maand kiezen met de html optie <select></select> waarvan ze de verjaardagen willen zien. Het is dus de bedoeling dat ze als ze bijvoorbeeld 'maart' kiezen, alle verjaardag in maart uit de database gehaald worden.

Hoe kan ik de informatie uit de <select> halen is nu mijn vraag, zodat de informatie naar de database kan? m.a.w. hoe kan ik te weten komen welke maand de gebruiker heeft gekozen en zo de database bevragen. Heb al wel ervaring met een formulier maken, maar daar drukt de gebruiker op 'submit', wat hier niet het geval is.
 
PHP hulp

PHP hulp

09/01/2025 16:12:40
 
Roy Bongers

Roy Bongers

19/04/2005 21:46:00
Quote Anchor link
stel je gebruikt de method POST

<select name="maand">
<option value="01">Januari</option>
....
</select>

dan kun je de maand ophalen met

$_POST['maand'];

gebruik je de GET methode dan kun je deze ophalen met

$_GET['maand'];
 
G. de Graaf

G. de Graaf

19/04/2005 22:45:00
Quote Anchor link
DAn moet er dus wel een <form> bij neem ik aan?

En dan zou de sql query bijvoorbeeld zijn:

SELECT maand, naam, geboortejaar FROM verjaardagen WHERE maand=$_POST
Gewijzigd op 19/04/2005 22:49:00 door G. de Graaf
 
Roy Bongers

Roy Bongers

19/04/2005 22:50:00
Quote Anchor link
$_POST['maand'] ja :). en in php

$sql = "SELECT maand, naam, geboortejaar FROM verjaardagen WHERE maand = '" . $_POST['maand']. "'";
 
G. de Graaf

G. de Graaf

19/04/2005 23:00:00
Quote Anchor link
Ok, deze code maar deze werkt nog niet helemaal zoals ik wil.

<form method="post">
<select class="formtext" name="maand" id="maand">
<option selected value=""></option>
<option value="januari">januari</option>
<option value="februari">februari</option>
<option value="maart">maart</option>
<option value="april">april</option>
<option value="mei">mei</option>
<option value="juni">juni</option>
<option value="juli">juli</option>
<option value="augustus">augustus</option>
<option value="september">september</option>
<option value="oktober">oktober</option>
<option value="november">november</option>
<option value="december">december</option>
</select><input type="submit" value="Laat zien!" name="submit"></form>
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
24
25
26
27
28
29
30
<?php
                
                $sql
= "SELECT dag, maand, naam, geboortejaar FROM verjaardagen WHERE maand = '" . $_POST['maand']. "'";
                //--via de functie mysql_query() kan de sql code die in $sql staat uitgevoerd worden
 $res = mysql_query($sql);
 
 //--Kijk via de functie mysql_num_rows() of er 1 of meer rijen zijn. Is dat niet zo dan is de tabel leeg
 if (mysql_num_rows($res) >= 1)
 {

     //--met de functie mysql_fetch_array worden alle resultaten in een array
    //--gezet en kunnen deze worden aangeroepen
    
    //--loop door de resultaten

    while ($row = mysql_fetch_array($res))
    {

    
        echo "<b>$row[dag]</b>&nbsp;";
        echo "<b>$row[maand]</b>&nbsp;&nbsp;";
        echo "$row[naam]&nbsp;";
        echo "($row[geboortejaar])<br><br>";
    }
    
    
}


//--als er geen resultaten zijn:
else
{
echo "Er zijn geen verjaardagen.";
}
?>


Standaard staat er nu geen maand geselecteerd en krijg ik dus de volgende melding: Notice: Undefined index: maand in e:\program files\easyphp1-7\www\verjaardagkalender.php on line 172. Hoe kan ik zorgen dat ik deze melding niet krijg.

Ook moet de gebruiker nu op een submit button klikken, ik heb liever dat als de optie geselecteerd wordt, de resultaten gelijk getoond worden. Is dit mogelijk?
Gewijzigd op 20/04/2005 00:21:00 door G. de Graaf
 
- wes  -

- wes -

20/04/2005 09:38:00
Quote Anchor link
dat is met een onChange wel te regelen, code staat 500x op deze site :)

als je nou eerst dit voor je hele sql gedeelte zet:

if (isset($_POST['maand']))
{
sql dingen
} else {
echo "select een maand";
}

dan krijg je ook geen wazige foutmeldingen als je nog nix heb gesubmit. zet zowieso boven de maanden een veld 'maand' die aan begin geselect is, zonder verdere value.
 
- SanThe -

- SanThe -

20/04/2005 12:50:00
Quote Anchor link
<form method="post">

Moet daar geen action bij?

<form action="" method="post">
 
G. de Graaf

G. de Graaf

20/04/2005 13:38:00
Quote Anchor link
Ok het script werkt! Er zit geen 'action' bij SanThe, is dat nodig dan?
 
Roy Bongers

Roy Bongers

20/04/2005 14:32:00
Quote Anchor link
action="pagina.php" verstuurt je gegevens naar die bep pagina. Of t verplicht is weet ik niet moet je ff op htmlhandleiding.nl kijken.
 
- wes  -

- wes -

20/04/2005 14:42:00
Quote Anchor link
doe het zelf soms ook zo voort gemak, als je maar binnen deze pagina blijft
 
G. de Graaf

G. de Graaf

20/04/2005 14:53:00
Quote Anchor link
Het werkt nu dus ik denk dat ik het maar zo laat staan.

Ik heb trouwens nog ff gezocht naar zo'n onchange-scriptje maar niet kunnen vinden hier, maar dat zal wel aan mijn zoektermen liggen....Iemand eentje bij de hand?
Gewijzigd op 20/04/2005 14:54:00 door G. de Graaf
 
- wes  -

- wes -

20/04/2005 15:16:00
Quote Anchor link
zoek op google 'onchance submit form'

moet lukken :)
 
G. de Graaf

G. de Graaf

20/04/2005 15:47:00
Quote Anchor link
Ok ik heb hem: onChange="document.maandselect.submit()"

tnx allemaal!!!!
 



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.