Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.06.2008, 01: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);
                   ?>
Ответить с цитированием
  #2 (permalink)  
Старый 25.06.2008, 14:47
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

А если попробовать вот так?
function replaceText(el, text) {
  if (el != null) {
    el.innerHTML = text;
  }
}

То будет отображаться html?

Кроме того, зачем вы используете получение данных в готовом html? Или это принципиально в вашем случае?
Все проблемы отпали бы, если бы вы получали, например, JSON объект, по которому уже создавался элемент html.
Или вы хотите сделать один код для всех случаев, так называемый AHAH?

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

Спасибо, помогло!

с JS я работаю второй день и с JSON еще не разобрался и потом, я хотел бы сделать код для разных форм (и не только форм), а то их в этом маленьком проекте уж очень много.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое обновление списка Select Fender Events/DOM/Window 3 12.06.2008 20:30