login  Naam:   Wachtwoord: 
Registreer je!
 Forum

linked listbox

Offline gerits - 25/07/2007 17:13 (laatste wijziging 25/07/2007 17:27)
Avatar van geritsLid hallo,
ik zou een multilinked listbox willen hebben, als ik in de eerste listbox iets aanduid komt er pas iets in de 2de staan...

de gegevens staan in een database, maar deze kan ik dan met php aanspreken zeker?

weet gewoon niet hoe ik dit kan maken, iemand een idee?

het is dus zoiets:
http://www.java...button.htm
maar dan maar met 2 listboxe, maar kan er niet eens iets nuttigs uit dat script halen 

12 antwoorden

Gesponsorde links
Offline pim1991 - 25/07/2007 17:45
Avatar van pim1991 PHP interesse Dit werkt met javascript.
Je hebt een functie nodig die controleert wanneer in de eerste box iets aan wordt geklikt dat dan pas het volgende wordt geactiveerd.
Die link wat je geeft naar dat script is een heel goed voorbeeld en kan je gebruiken mits je het aanpast.
Offline gerits - 25/07/2007 18:20
Avatar van gerits Lid ik vroeg eigenlijk om wat help in plaats van een bevestiging van wat ik al wist...
Offline Simon - 26/07/2007 00:09
Avatar van Simon PHP expert onchange="functie(this....value)";
zoek maar even op hoe je de value van het gekozen item kan achterhalen 
Offline Thomas - 26/07/2007 12:22
Avatar van Thomas Moderator Ik zou alle selectboxen uitdraaien met PHP, en hier divs omheen zetten. Op het moment dat je in een selectbox een item selecteert, maak je de div met de selectbox waar naar verwezen wordt zichtbaar.
De rest van de divs is onzichtbaar.

Zie bijvoorbeeld http://www.mansion.nl/ - de selectbox voor provincies / plaatsen.
Offline gerits - 26/07/2007 13:43
Avatar van gerits Lid kan ik dan ook bijvoorbeeld zeggen:
onchange=functie(geslecteerd item)

dan met javascript:
var album = geselecteerd item

en dan met php die var album oproepen?
Offline Thomas - 26/07/2007 14:02
Avatar van Thomas Moderator Mja, maar dan moet je de pagina opnieuw aanroepen (refresh), terwijl dat niet nodig is als je alles al afdrukt (maar nog niet toont).
Offline gerits - 26/07/2007 17:29
Avatar van gerits Lid dat verlengt de laadtijd 
Offline Simon - 26/07/2007 18:00
Avatar van Simon PHP expert AJAX is hiervoor de oplossing 
Offline gerits - 26/07/2007 18:31 (laatste wijziging 27/07/2007 11:56)
Avatar van gerits Lid ik heb nu dit:
  1. function imageAdd(elem) {
  2. var target = document.frmPost.img_afbeelding;
  3. for (var i = target.options.length; i >= 0; i--) target.options[i] = null;
  4. if (elem.selectedIndex != -1){
  5. if (elem.options[elem.selectedIndex].value == 1){
  6. target.options[target.options.length] = new Option("image 1", "1");
  7. target.options[target.options.length] = new Option("image 2", "2");
  8. }
  9. }
  10. }


formulier:
  1. <form name="frmPost">
  2. <select id="img_album" name="img_album" style="width:100px; height:100px;" onchange="imageAdd(this)" size="10">
  3. <?php
  4. $sql_album = mysql_query("SELECT * FROM ntc_album")or die(mysql_error());
  5. $n = 0;
  6. while($row_album = mysql_fetch_object($sql_album)) {
  7. $albumnaam = $row_album->album_naam;
  8. $n++;
  9. echo "<option value='".$n."'>".$albumnaam."</option>";
  10. }
  11. ?>
  12. </select>
  13. <select name="img_afbeelding" id="img_afbeelding" style="width:100px; height:100px;" size="10">
  14. <option>[selecteer een album]</option>
  15. </select>
  16. </form>


hoe kan ik er nu voor zorgen dat deze opties uit de database worden gehaald? en antwoord liefst niet gewoon met ajax, want dat weet ik al, weet gewoon niet hoe 
Offline Analog - 27/07/2007 14:12 (laatste wijziging 27/07/2007 14:13)
Avatar van Analog HTML interesse In de php-pagina maak je gewoon je script waarin je je output echoed

in de HTML pagina:
  1. <script language="javascript">
  2.  
  3. function populateList()
  4. {
  5. xmlHttp=GetXmlHttpObject();
  6. if (xmlHttp==null)
  7. {
  8. alert ("Your browser does not support AJAX!");
  9. return;
  10. }
  11. var url="./php_process_pagina.php";
  12.  
  13. // haal het item op dat is geselecteerd
  14. selected_item = document.getElementById("id_list_1").value;
  15.  
  16. url=url+"&selected_id=selected_item";
  17. xmlHttp.onreadystatechange=viewChanged;
  18. xmlHttp.open("GET",url,true);
  19. xmlHttp.send(null);
  20. }
  21.  
  22. function viewChanged()
  23. {
  24. if (xmlHttp.readyState==4)
  25. {
  26. document.getElementById("div_list_2").innerHTML=xmlHttp.responseText;
  27. }
  28. }
  29.  
  30.  
  31. function GetXmlHttpObject()
  32. {
  33. var xmlHttp=null;
  34. try
  35. {
  36. // Firefox, Opera 8.0+, Safari
  37. xmlHttp=new XMLHttpRequest();
  38. }
  39. catch (e)
  40. {
  41. // Internet Explorer
  42. try
  43. {
  44. xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  45. }
  46. catch (e)
  47. {
  48. xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  49. }
  50. }
  51. return xmlHttp;
  52. }
  53. </script>


En in je pagina maak je 2 of 3 divs met een ID die je dan aanroept om met de viewChanged functie te vullen
Offline gerits - 27/07/2007 14:19
Avatar van gerits Lid herlaad de pagina hierbij dan?
Offline Analog - 27/07/2007 14:19
Avatar van Analog HTML interesse nee, dit gebeurt in de background dus de gebruiker ziet er niets van
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.238s