login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Dubbele dropdownbox icm javascript geeft een probleem.

Offline Mark2000 - 12/02/2010 22:51
Avatar van Mark2000Nieuw lid Hallo. Ik heb eindelijk, na lang zoeken, een script gevonden waarmee ik een dubbele dropdown box kan creëren waarbij de tweede box d.m.v. javascript gevuld wordt na de selectie in box 1.

Met de standaard code gelinkt aan de SQL database werkt alles, maar zodra ik de scripts aanpas naar wat ik uiteindelijk wil behalen sluipt er ergens een error in het javascript.

Aangezien ik na diverse javascript tutorials en dingen er maar niet uit kan komen hoe alles werkt en wat ik fout doe hoop ik dat jullie mij hier verder kunnen helpen  

Het script waardoor de dropdown boxes gegenereerd worden.
  1. <!-- drop down #1, selection drives content in drop-down #2 -->
  2. <!-- onChange event does not fire if value does not change -->
  3. <!-- you may want to try using the onClick event instead -->
  4. <select name="Land" id="Land" onChange="return ContinentListOnChange()">
  5. <?php
  6. $query = "SELECT * from spots_tbl group by Land";
  7. $result = mysql_query($query);
  8. while($row = mysql_fetch_assoc($result))
  9. {
  10. echo '<option value="' . $row['Land'] . '">' . $row['Land'] . '</option>';
  11. }
  12.  
  13. ?>
  14. </select>
  15. <!-- drop down #2, list contents depend on value selected in drop-down #1 -->
  16. <!-- code in the file js/AjaxCode.js will populate this drop-down list -->
  17. Selecteer de plaats:
  18. <BR>
  19. <select name="countrylist" id="countrylist" >
  20. </select>
  21.  
  22. </html>


Het Javascript stuk waar de fout erin sluipt
  1. // populate the contents of the country dropdown list
  2. function PopulateCountryList(countryNode)
  3. {
  4. var countryList = document.getElementById("countryList");
  5. // clear the country list
  6. for (var count = countryList.options.length-1; count >-1; count--)
  7. {
  8. countryList.options[count] = null;
  9. }
  10.  
  11. var countryNodes = countryNode.getElementsByTagName('country');
  12. var idValue;
  13. var textValue;
  14. var optionItem;
  15. // populate the dropdown list with data from the xml doc
  16. for (var count = 0; count < countryNodes.length; count++)
  17. {
  18. textValue = GetInnerText(countryNodes[count]);
  19. idValue = countryNodes[count].getAttribute("id");
  20. optionItem = new Option( textValue, idValue, false, false);
  21. countryList.options[countryList.length] = optionItem;
  22. }
  23. }


Ik hoop dat hiermee de fout al gevonden kan worden, als het complete javascript nodig is hoor ik het wel!

4 antwoorden

Gesponsorde links
Offline Jelmerholland - 13/02/2010 16:18
Avatar van Jelmerholland PHP beginner Geen idee, maar hier doe je sws iets raars:
  1. echo '<option value="' . $row['Land'] . '">' . $row['Land'] . '</option>';


Zou volgen mij zo moeten zijn: (met andere haakjes (""))
  1. echo "<option value=\"" . $row['Land'] . "\">" . $row['Land'] . "</option>";


Je gebruikt kleintjes en groten door elkaar. Je moet de escape (\) gebruiken om een " te printen. Dus \"

Maar javascript snap ik zelf ook nog niet al te best dus sorry 
Offline Mark2000 - 14/02/2010 10:21
Avatar van Mark2000 Nieuw lid Bedankt Jelmerhollan ik zal dat vanmiddag of vanavond even testen als ik tijd heb, Javascript is ook niet mijn beste kant daarom struikel ik daar nu al de hele tijd over  
Offline TotempaaltJ - 14/02/2010 11:09
Avatar van TotempaaltJ PHP interesse
Jelmerhollan schreef:
Geen idee, maar hier doe je sws iets raars:

Zou volgen mij zo moeten zijn: (met andere haakjes (""))

Je gebruikt kleintjes en groten door elkaar. Je moet de escape () gebruiken om een " te printen. Dus "

Nee, je kan in PHP allebei de haakjes gebruiken, als je ' gebruikt, moet je ook alleen de ' escapen (overigens heet \ een backslash), als je daarentegen " gebruikt, moet je alleen " escapen!
Offline Mark2000 - 16/02/2010 13:30
Avatar van Mark2000 Nieuw lid Ik heb inmiddels in de gaten waar het fout gaat, alleen weet ik niet waarom het fout gaat.

de originele query voor de tweede dropdownbox is
  1. $query = "SELECT * from spots_tbl where country = '$filter'";


Hiermee krijg ik uiteindelijk alle plaatsen te zien, waaronder dus ook de dubbele.

Als ik dan de query wil veranderen in

  1. $query = "SELECT DISTINCT area from spots_tbl where country = '$filter'";


Zodat ik elke plaats maar 1 keer krijg in de tweede dropdownbox loopt het javascript vast.
De fout zit dan bij het javascript in deze regel.
  1. var countryNodes = countryNode.getElementsByTagName('country');


En de foutmelding is dan; Bericht: 'null' is leeg of geen object

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