login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Filter results met drop-down

Offline prinsrob - 11/05/2010 17:54 (laatste wijziging 11/05/2010 19:17)
Avatar van prinsrobNieuw lid Hallo,

Heb al een tijdje rond gesnuffeld en er staat genoeg maar net niet wat ik zoek en ik kom er niet uit.

Ik heb een simpel overzicht uit een tabel van werknemers. Nu wil ik bovenaan die kolommen met resultaten een dropdown filter maken. Het is dan de bedoeling als men bv. op afdeling Marketing klikt ook alleen de mensen van die afdeling te zien zijn. Ik heb alleen nog maar het overzicht dus hoe kan ik het beste beginnen?? Dit is het simpele overzicht:

  1. <?php
  2.  
  3. $query = "SELECT *
  4. FROM employee
  5. ORDER BY ORA DESC";
  6.  
  7.  
  8. $sql = mysql_query ($query) or die (mysql_error());
  9. if ($sql && mysql_num_rows($sql) >= 1)
  10. {
  11. echo "<table class=\"style8\" border=\"1\" width=\"890\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">" ;
  12. echo "<tr><td><b>Pers_id</b></td>";
  13. echo "<td><b>Voornaam</b></td>";
  14. echo "<td><b>Voorvoegsel</b></td>";
  15. echo "<td><b>Achternaam</b></td>";
  16. echo "<td><b>Afdeling</b></td>";
  17. echo "<td><b>Functie</b></td>";
  18. echo "<td><b>ORA nummer</b></td></tr>";
  19.  
  20. while ($row= mysql_fetch_array ($sql)){
  21.  
  22.  
  23. echo '<tr><td>'.$row['pers_id'].'</td>';
  24. echo '<td>'.$row['voornaam'].'</td>';
  25. echo '<td>'.$row['voorvoegsel'].'</td>';
  26. echo '<td>'.$row['achternaam'].'</td>';
  27. echo "<td>".$row['afdeling']."</td>";
  28. echo "<td>".$row['functie']."</td>";
  29. echo '<td><a href="detail.php?id='.$row['ORA'].'">'.$row['ORA'].'</a></td>';
  30. }
  31.  
  32.  
  33. }
  34.  
  35.  
  36. echo "</table>";
  37. ?>


vinTage schreef:
codetags..

9 antwoorden

Gesponsorde links
Offline kiwi - 11/05/2010 17:58 (laatste wijziging 11/05/2010 17:59)
Avatar van kiwi Nieuw lid
  1. $query = "SELECT *
  2. FROM employee
  3. WHERE functie='Marketing'
  4. ORDER BY ORA DESC";

Offline prinsrob - 11/05/2010 20:29
Avatar van prinsrob Nieuw lid
kiwi schreef:
[..code..]

Bedankt voor de reactie.
Ik begrijp ongeveer wat je bedoeld maar zie je dit als een extra query of vervanging van de huidige? En hoe maak ik het dan zichtbaar?
Offline dieterke - 11/05/2010 21:15 (laatste wijziging 11/05/2010 21:17)
Avatar van dieterke Nieuw lid je maakt een formulier op, waarbij je door middel van een selectveld laat kiezen
bv
  1. <form method='get'>
  2. <select name='functie'>
  3. <option value='marketing'>marketing</option>
  4. <option value='...'>...</option>
  5. <input type='submit' name='verzenden' value='Selecteer!' />
  6. </form>


dit zet je bovenaan je pagina, dan maak je daaronder een if
  1. if (isset($_GET['functie']))
  2. $query = "SELECT * FROM employee WHERE functie='".$_GET['functie']."' ORDER BY ORA DESC";
  3. else
  4. $query = "SELECT * FROM employee ORDER BY ORA DESC";



edit: was de submitknop vergeten
Offline prinsrob - 11/05/2010 22:30 (laatste wijziging 11/05/2010 22:30)
Avatar van prinsrob Nieuw lid Dank je voor de uitleg, maar volgens mij is mijn vraag dan onduidelijk. Op de manier zoals je hem beschrijft snap ik het maar de truc is dat de 'options' variabel uit de db moeten komen en al in het drop-down menu moeten verschijnen. Zeg maar net als je dat in Excel kunt met een filter.
Dus standaard pagina weergave is alles en zodra men op de dropdown van de kolomheader klikt zou de filter moeten starten. Dit zou dan ook zonder submit button het mooiste zijn. Ik hoop dat zo mijn vraag iets duidelijker is.
Offline dieterke - 12/05/2010 07:04
Avatar van dieterke Nieuw lid dan kun je aan die select een onchange toevoegen, en dan door middel van ajax de tabel hernieuwen
Offline prinsrob - 12/05/2010 11:14
Avatar van prinsrob Nieuw lid uhm... dat is een beetje nieuw voor mij. Die onchange die moet lukken maar hoe krijg ik die variabele data in die dropdown dan?
En wat ajax betreft.... daar heb ik nog geen kaas van gegeten.
Offline dieterke - 12/05/2010 21:46
Avatar van dieterke Nieuw lid je filter bestaat tog uit vaste waarden? dan kan je tog die select gebruiken, zoals ik hem heb aangegeven. je je voegt dit eraan toe: onChange="verander(this.value)";

google en w3schools zullen je bij ajax wel helpen, wat ik je nog kan meegeven:
zet je tabel in een div met een idbv <div id='tabel'> ..tabel .. </div>
dan laat je je ajaxscript gewoon in die div hun nieuwe content zetten

op de externe pagina, waar je ajax de content vandaan haalt laat je door de parameter die je meegeeft je query aanpassen, en geneert een tabel, kan je een beetje volgen?
Offline TotempaaltJ - 12/05/2010 21:59
Avatar van TotempaaltJ PHP interesse Laat eens kijken... Je kan ook elke row een class meegeven met daarin de naam van de functie, en dan in de selectbox een onchange waarin je alle classess die niet de gekozen class zijn op display: none; zet? 
Offline prinsrob - 12/05/2010 23:02 (laatste wijziging 17/05/2010 15:03)
Avatar van prinsrob Nieuw lid
dieterke schreef:
je filter bestaat tog uit vaste waarden? dan kan je tog die select gebruiken, zoals ik hem heb aangegeven. je je voegt dit eraan toe: onChange="verander(this.value)";

google en w3schools zullen je bij ajax wel helpen, wat ik je nog kan meegeven:
zet je tabel in een div met een idbv <div id='tabel'> ..tabel .. </div>
dan laat je je ajaxscript gewoon in die div hun nieuwe content zetten.

op de externe pagina, waar je ajax de content vandaan haalt laat je door de parameter die je meegeeft je query aanpassen, en geneert een tabel, kan je een beetje volgen?


Dat is het nu juist. Die filter moet de waarde bevatten die uit de db komen.

|kolomheader1 |kolomheader2 |kolomheader3 |
---------------------------------------------
|piet |marketing |manager |
|marie |sales |assistent |


Waarbij dus de kolomheaders al voorzien zijn van de waardes uit de db. dus kolomheader2 zou hier al de selectie moeten bevatten Marketing of Sales.
Zoals ik al aangaf heb ik het dus voor elkaar om alles tevoorschijn te toveren maar aangezien het om meer dan 2000 rijen gaat met wel 45 verschillende afdelingen wil ik dus zo'n filter gebruiken.

Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.237s