login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Mysql + php refresh

Offline Darki3 - 25/05/2005 13:40
Avatar van Darki3Nieuw lid Beste scripters,

Ik zou graag willen weten hoe ik het onderstaande script kan maken zodat waneer klas is ingevuld de namen van de leerlingen ter voorschijn komen zonder dat je op een volgende button moet klikken of zo !

  1. <form method="post" action="">
  2. <td width="19%">naam</td>
  3. <td width="81%"><select name="klas">
  4. <?php
  5. include ("inc/config.php");
  6. $resultaat = mysql_query("SELECT * FROM sites ") or die ("Er is iets mis met de database");
  7.  
  8. while($row = mysql_fetch_assoc($resultaat))
  9. {
  10. echo '<option value="'.$row['klas'].'">'.$row['klas'].'</option>';
  11. }
  12. ?>
  13. </select></td>
  14. </tr>
  15. <tr>
  16. <td>klas</td>
  17. <td><select name="naam">
  18. <?php
  19. include ("inc/config.php");
  20. $resultaat = mysql_query("SELECT * FROM sites where klas = $klas") or die ("Er is iets mis met de database");
  21.  
  22. while($row = mysql_fetch_assoc($resultaat))
  23. {
  24. echo '<option value="'.$row['naam'].'">'.$row['naam'].'</option>';
  25. }
  26. ?>
  27. </select></td>
  28. </form>

10 antwoorden

Gesponsorde links
Offline Thomas - 25/05/2005 13:47 (laatste wijziging 25/05/2005 13:48)
Avatar van Thomas Moderator Dat kan, als je ALLE klassen+leerlingen onderbrengt in een array-structuur in JavaScript. Maar het is véél makkelijker om dit door PHP/MySQL te laten regelen.

Je laat dan eerst alleen een selectbox zien waarin je een klas kunt selecteren. Met het onChange-attribuut / event-handler kun je een formulier automatisch submitten. In je PHP script verwerk je het gesubmitte formulier en kijkt welke gegevens zijn ingevuld en welke vervolgstappen er ondernomen moeten worden (je toont dan een tweede selectbox met hierin de leerlingen uit de eerder geselecteerde klas).
Offline Darki3 - 25/05/2005 13:54
Avatar van Darki3 Nieuw lid en nu ?
Offline Thomas - 25/05/2005 14:13
Avatar van Thomas Moderator En nu besluit je voor jezelf welke aanpak je kiest, en gaat je vervolgens afvragen hoe je zoiets zou kunnen programmeren, en dan ga je dat stap voor stap doen en als je ergens vastloopt en daarbij een concrete vraag hebt, ben je welkom deze te stellen op het forum .
Offline Darki3 - 25/05/2005 14:17
Avatar van Darki3 Nieuw lid stel ik toch ? No offense maar vraag gewoon voor oplossing toch normaal :S
Offline Thomas - 25/05/2005 14:22 (laatste wijziging 25/05/2005 14:26)
Avatar van Thomas Moderator Mja, ik heb het een keer geprobeerd, maar toen werd het een beetje een oeverloze discussie.

Daar zou genoeg inspiratie in moeten zitten om je probleem op te lossen.

EDIT: Ik probeer altijd mensen op weg te helpen, maar niet eindeloos dingen voor te kauwen. Ik probeer mensen zelf na te laten denken, want anders hebben ze misschien het idee dat op dit forum een soort van dedicated coding group zit, die heel de dag niets anders zit te doen dan ijverig bezig zijn met het oplossen van andermans problemen door het uitspugen van code, maar dat lijkt mij niet de bedoeling eh ?
Offline Gerard - 25/05/2005 15:43
Avatar van Gerard Ouwe rakker Ik ben het compleet met FangorN eens. Wanneer hij een oplossing gaat bieden, dus de gehele code zelf schrijft, ben jij wel geholpen maar ben je er zelf niks wijzer van geworden.

Zijn uitleg is duidelijk, het lijkt mij totaal geen probleem om dit in de realiteit te brengen. Mocht je nog problemen hebben kun je, zoals aangegeven, altijd nog even hier aankloppen. We zullen je dan gewoon op weg helpen.
Offline Legolas - 25/05/2005 16:03
Avatar van Legolas Onbekend
  1. <html>
  2. <SELECT onchange="window.location.href=this.options[this.selectedIndex].value">
  3. <!-- haal dit uit je while -->
  4. <OPTION VALUE="http://www.link.nl">Link</OPTION>
  5. <-- end while -->
  6. </SELECT>
  7. </html>

dit is het principe:cool:
Offline Fenrir - 25/05/2005 16:08
Avatar van Fenrir PHP expert Het kan ook met optgroups. Zou groepeer je leerlingen uit een klas.

  1. <select name="leerling">
  2. <optgroup label="Klas A">
  3. <option>Leerling 1</option>
  4. <option>Leerling 2</option>
  5. <option>Leerling 3</option>
  6. </optgroup>
  7. <optgroup label="Klas B">
  8. <option>Leerling 1</option>
  9. <option>Leerling 2</option>
  10. <option>Leerling 3</option>
  11. </optgroup>
  12. ...
  13. </select>
Offline Gerard - 25/05/2005 16:48
Avatar van Gerard Ouwe rakker Dat IS een mooie manier om de gegevens weer te geven Fenrir. echter nu zit hij nog een beetje zich af te vragen hoe hij de gegevens uit de database haalt.

In hoeverre zorgt jouw manier voor stress op de db? hij haalt toch alle users op... toch?
Offline Fenrir - 25/05/2005 17:03 (laatste wijziging 25/05/2005 17:05)
Avatar van Fenrir PHP expert
Citaat:
In hoeverre zorgt jouw manier voor stress op de db? hij haalt toch alle users op... toch?
Niet echt veel denk ik. Tenzij er erg veel users zijn.

Ophalen kan toch gewoon met een simpele query:

  1. <?php
  2.  
  3. if($dat = DB::Select('SELECT * FROM klassen'))
  4. {
  5. echo '<select name="leerling">';
  6. foreach($dat as $d)
  7. {
  8. echo '<optgroup label="'. $d->naam . '">';
  9. if($dat2 = DB::Select('SELECT * FROM leden WHERE klasID='.$d->ID))
  10. {
  11. foreach($dat2 as $d2)
  12. {
  13. echo '<option>'.$d2->naam.'</option>';
  14. }
  15. }
  16. echo '</optgroup>';
  17. }
  18. echo '</select>';
  19. }else
  20. {
  21. echo 'Geen klassen gevonden!';
  22. }
  23.  
  24. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.195s