witam wszystkich.
Dopiero zaczynam naukę AJAXa a za żadne skarby nie potrafię namierzyć błędu dlaczego nie chce mi otwierać dokumentów XML. Mam nadzieję że znajdzie się ktoś i wskaże mi co robię nie tak.

Otóż jest to dość prosty skrypt.
Zasada jego działania jest taka:

w skrypcie options.php jest przechowywany dokument XML z odpowiednimi kolorami:
  1. <?php
  2. header("Content-type: text/xml");
  3. if($_GET["sheme"]=="1"){
  4. $options = array('red', 'green', 'blue');
  5. }
  6. if($GET["sheme"]=="2"){
  7. $options = array('black', 'white', 'orange');
  8. }
  9. echo '<?xml version="1.0"?>';
  10. echo '<options>';
  11. foreach($options as $value){
  12. echo '<option>';
  13. echo $value;
  14. echo '</option>';
  15. }
  16. echo '</options>';
  17. ?>


w pliku options.html wyświetlane są 2 przyciski które w zależności od wybranej opcji do listy rozwijanej dodają odpowiednie kolory:
  1. <!DOCTYPE html>
  2. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  3. <meta http-equiv="Content-Language" content="pl" />
  4. <script type="text/javascript" language="JavaScript" src="opcje3.js"></script>
  5. </head>
  6. <h1>Przekazywanie danych przy użyciu ajax i xml</h1>
  7. <form action="">
  8. <select name="" size="1" id="optionList" onchange="setOption()">
  9. <option value="">Wybierz schemat</option>
  10. </select>
  11. <input type="button" value="schemat1" onclick="getOptions('1')">
  12. <input type="button" value="schemat2" onclick="getOptions('2')">
  13. </form>
  14. <div id="targetDiv">text</div>
  15. <!-- To jest miejsce na treść dokumentu -->
  16.  
  17. </body>
  18. </html>


a to jest skrypt js który teoretycznie powinien to wszystko obsłóżyc:

  1. var XMLHttpRequestObject = false;
  2. if(window.XMLHttpRequest){
  3. XMLHttpRequestObject = new XMLHttpRequest();
  4. } else if (window.ActiveXObject){
  5. XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
  6. }
  7. var options;
  8. function getOptions(scheme){
  9. var url = "options2.php?scheme"+scheme;
  10.  
  11. if(XMLHttpRequestObject){
  12. XMLHttpRequestObject.open("GET",url,true);
  13.  
  14. XMLHttpRequestObject.onreadystatechange = function(){
  15. if(XMLHttpRequestObject.readystate == 4 && XMLHttpRequestObject.status == 200){
  16. var xmlDocument = XMLHttpRequestObject.responseXML;
  17. options = xmlDocument.getElementsByTagName("option");
  18. listOptions();
  19. }
  20. }
  21. XMLHttpRequestObject.send(null);
  22. }
  23. }
  24.  
  25. function listOptions(){
  26. var i;
  27. var selectControl = document.getElementById('optionList');
  28. for(i=0;i<options.length;i++){
  29. selectControl.options[i] = new Option(option[i].firstChild.data());
  30. }
  31. }
  32.  
  33. function setOption(){
  34. document.getElementById('targetDiv').style.color = options[document.getElementById('optionList').selectedIndex].firstChild.data;
  35. }


Problem polega na tym że nie pojawiają mi się w liście rozwijanej kolory mimo iż wybieram schemat 1 lub 2.
Będę bardzo wdzięczny za pomoc gdyby ktoś mi wskazał co robię nie tak.
Pozdrawiam i z góry dziękuję