Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: несложный вопрос...
 
 автор: servannin   (26.04.2005 в 15:23)   письмо автору
 
 

Не пугайтесь ,что много кода для форума. В нём во всём не нужно разбираться8-)
Почему, в представленном ниже скрипте, при его запуске создаётся выпадающее меню , значения выглядят :'Type 1 Type 2 Type 3'
'Type 1 Type 2 Type 3'
'Type 1 Type 2 Type 3' , а
должны выглядеть так : Type 1
Type 2
Type 3
Смотрите функцию myoption(root);
Переменная t записывает сразу все значения тегов <option> и выдаёт их 3 раза,а она не должна так делать.
Где ошибка??????????
Спасибо
Код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test aspdom</title>
</head>
<script language="javascript">
<!--
var dom = new ActiveXObject("microsoft.XMLDOM");
 dom.async = false;
 dom.load ("file.xml");
var root=dom.documentElement;
    function parse(root)
    {
     var i=0;
     if(root.nodeType==1)
         {
          document.writeln(root.nodeName);
         document.write('<br>');
         if(root.nodeName=='all') myall();
         document.write('<br>');
         if(root.nodeName=='Item') myItem(root);
         document.write('<br>');
         if(root.nodeName=='SimpleType') mySimpleType(root);
         document.write('<br>');
         if(root.nodeName=='option') myoption(root);
         document.write('<br>');
         }
        else if(root.nodeType==3){}
        else
        {
          document.writeln('<br><br>Error');
         }
     if(root.childNodes!=null)
     {
      document.writeln('It consist of '+root.childNodes.length+' elements:');
       for(i=0;i<root.childNodes.length;i++)
      {
       parse(root.childNodes.item(i));
      }
     }
    }
    
 function viewDocument()
  { 
   document.writeln('<body bgcolor="white">'); 
   document.writeln('<p><center><hr width=80%>XML sample page <hr width=80%></center><p>'); 
   parse(root); 
   document.writeln('</body>'); 
  } 
  
  function myall()
   {
    document.write("myall");
   }
   
  function myItem(root)
   {
    document.write("myItem");
    document.write(root.attributes[0].name);//&#226;&#251;&#226;&#229;&#228;&#229;&#242; name 
  document.write(root.attributes[0].text);//&#226;&#251;&#226;&#229;&#228;&#229;&#242; Test item 
   }
   
  function mySimpleType(root)
   {
    document.write("mySimpleType");
    document.write('<br>');
    document.write(root.attributes[0].name);//&#226;&#251;&#226;&#229;&#228;&#229;&#242; name 
    document.write('<br>');
document.write(root.attributes[1].name);//&#226;&#251;&#226;&#229;&#228;&#229;&#242; Test item 
document.write(root.attributes[1].text);//&#226;&#251;&#226;&#229;&#228;&#229;&#242; &#234;&#224;&#234;&#238;&#233;-&#242;&#238; &#242;&#229;&#234;&#241;&#242;
elemtext = root.attributes[1].text;
elemname = root.attributes[0].text;
if(elemtext=='text'){
document.write("<input type='"+elemtext+"' name='"+elemname+"'>");
}
if(elemtext=='radio'){
document.write("<input type='"+elemtext+"' name='"+elemname+"'>");
}
if(elemtext=='List'){
document.write("<select name='"+elemname+"'>");
myoption(root);
document.write("</select>");
}
   }
   
  function myoption(root)
   {
  
   //document.write(root.nodeName);
   //s=root.attributes[1].text;
  //  document.write(s);
   if(root.nodeName=='SimpleType'){
   //document.write(root.text);
   t=root.text;
   //document.write(root.text);
    //document.write("<OPTION>t</OPTION>");
   for(i=0;i<root.childNodes.length;i++)
   
    document.write("<Option>'"+t+"'</Option>");
    }
    
    //document.write(root.parentNode.nodeName);
    //if(root.parentNode.nodeName=='SimpleType'){
    //document.write("f")}
    //smtp(root);}
   }

viewDocument();
//function smtp(root){document.write("q!!!")}
//-->
</script>
<body onload='parse(root);'>
</body>
</html>


XML файл:

<?xml version="1.0" encoding="UTF-8"?>
<all>
   <Item name="Test item">
         <SimpleType name="Name" type="text"/>
   <SimpleType name="Radio" type="radio"/>
      <SimpleType name="Type" type="List">
         <option>Type 1</option>
         <option>Type 2</option>
      <option>Type 3</option>
         </SimpleType>
 <SimpleType name="Radio" type="radio"/>
    </Item>
</all>

   
 
 автор: Crux   (26.04.2005 в 16:32)   письмо автору
 
   для: servannin   (26.04.2005 в 15:23)
 

попробуй вот так

function myoption(root) 

if(root.nodeName=='SimpleType'){ 
var t=""
for(i=0;i<root.childNodes.length;i++) 
t=t+ "<option>"+root.childNodes[ i].text+"</option>"
document.write(t)

   
 
 автор: servannin   (26.04.2005 в 17:39)   письмо автору
 
   для: Crux   (26.04.2005 в 16:32)
 

спасибо,Crux
я как всегда на каких-то мелочах сильно торможу...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования