Показать сообщение отдельно
  #1 (permalink)  
Старый 25.06.2008, 02:40
Новичок на форуме
Отправить личное сообщение для macam Посмотреть профиль Найти все сообщения от macam
 
Регистрация: 25.06.2008
Сообщений: 2

Динамическое обновление списка select (продолжение мытарств)
Доброго времени суток!

С JS работаю совсем недавно. Прошу помочь в решении ситуации:

есть некий индексный файл, содержащий необходимые функции и элементы интерфейса, в т.ч. и злополучный список. содержимое списка берется из php-обработчика (actlist.php), который, в свою очередь, берет элементы списка из базы. Задача: нажимая на кнопку "Обновить список", получать от обработчика новые элементы (не перезагружая всю страницу) и представлять все это в виде простого выпадающего списка. Вот тут-то и проблема: не могу никак добится нормальной html-формы, на страницу выводится html-код, но в виде простого текста:

<select id = 'lex_act_id1' name = 'lex_act_id1'><option value = '0'>Выберите<option value = '6'>Объект 1 <option value = '3'>Объект 2 <option value = '4'>Объект 3 <option value = '5'>Объект 4 <option value = '2'>Объект 5 <option value = '1'>Объект 6 </select>


как бы его заставить обработать этот выдаваемый html? сил больше нет

краткие листинги:

<script type="text/javascript" src="text-utils.js"> </script>
  <script language="javascript" type="text/javascript">
  var request = null;

   function createRequest() {
     try {
       request = new XMLHttpRequest();
     } catch (trymicrosoft) {
       try {
         request = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (othermicrosoft) {
         try {
           request = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (failed) {
           request = null;
         }
       }
     }

     if (request == null)
       alert("Error creating request object!");
   }

   function getActList() {
     createRequest();
     var url = "actlist.php";
     request.open("GET", url, true);
     request.onreadystatechange = updatePage;
     request.send(null);
  }

  function updatePage() {
    if (request.readyState == 4) {
      var newTotal = request.responseText;
      var ActList = document.getElementById("act-list");
      replaceText(ActList, newTotal);
    
     
    }
  }

  </script>


</head>

<body>

........
<span id="act-list">  </span>
                     <form method="GET"> 
                   <input value="Обновить список" type="button" onClick="getActList();" /> 
                   
                   </form>


содержание файла text-utils.js:

function replaceText(el, text) {
  if (el != null) {
    clearText(el);
    var newNode = document.createTextNode(text);
    el.appendChild(newNode);
  }
}



function clearText(el) {
  if (el != null) {
    if (el.childNodes) {
      for (var i = 0; i < el.childNodes.length; i++) {
        var childNode = el.childNodes[i];
        el.removeChild(childNode);
      }
    }
  }
}

function getText(el) {
  var text = "";
  
  if (el != null) {
    if (el.childNodes) {
      for (var i = 0; i < el.childNodes.length; i++) {
        var childNode = el.childNodes[i];
        if (childNode.nodeValue != null) {
          text = text + childNode.nodeValue;
        }
      }
    }
  }
  
  return text;
  
}


содержание файла actlist.php:

<?
require_once('functions.php');


?>
    
<?php          
$act_array = get_act($lex_act_id);
display_act($act_array, @$lex_act_id, $all = 1);
                   ?>
Ответить с цитированием