dropdown aus einer txt Datei lesen per js...

#1
Hallo ihr Lieben...
Vieleicht kann mir jemand helfen.. Ich möchte gerne ein Dropdown machen der seine Auswahl aus einer .TXT datei zieht...
soweit funzt das auch..

In der .txt steht folgendes z.B.:

Hanz 39 Fritz 52 Anton 18

Hier mal der Code:


HTML:
<!DOCTYPE html >

<html>

<head>
  <title></title>
</head>

<body>

<select id="tst" ></select>

<script type="text/javascript">


function Populate(id,txt){
 this.obj=document.getElementById(id);
 this.ajax(txt);
}

Populate.prototype={

 populate:function(txt){
  txt=txt.split(' ');
  for (var z0=0;z0<txt.length;z0++){
   if (txt[z0]){
    this.obj[this.obj.options.length]=new Option(txt[z0],txt[z0]);
   }
  }

 },

 ajax:function(url){
  var txt=false,oop=this;
  if (window.ActiveXObject){
   try {
    txt=new ActiveXObject("Msxml2.XMLHTTP");
   }
   catch (e){
    try {
     txt=new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e){
    }
   }
  }
  else if (window.XMLHttpRequest){
   txt=new XMLHttpRequest();
  }
  else {
   return false;
  }
  txt.onreadystatechange=function(){
   if (txt.readyState==4&&(txt.status==200||window.location.href.indexOf("http")==-1)){
    oop.populate(txt.responseText);
   }
  }
  txt.open('GET',url+'?'+new Date().getTime(),true);
  try {
   txt.send(null);
  }
  catch (e){
  }
 }

}

new Populate('tst','test.txt');

</script>

</body>

</html>

mein Problem ist ,ich bekomme den Namen angezeigt im Dropdownmenü aber wie weise ich dem Namen nun einen wert zu?
Der Wert soll in diesem Beispiel das Alter von 39 sein...
D.h. Angezeigter Name soll Hanz im Dropdownmenü sein und 39 soll der Wert sein...

ich möchte wenn ich Hanz ausgewählt hab, daß mir dann in einem Feld das alter angezeigt wird...

könnte mir bitte jemand helfen?? danke und Grüße fototec
 

Sempervivum

Well-Known Member
#2
Das ist relativ leicht, ändere deinen Code folgendermaßen:
Code:
            populate: function (txt) {
                txt = txt.split(' ');
                for (var z0 = 0; z0 + 1 < txt.length; z0 += 2) {
                    if (txt[z0]) {
                        this.obj[this.obj.options.length] = new Option(txt[z0], txt[z0 + 1]);
                    }
                }

            },
Sieht dann im HTML-Inspektor so aus:

dynopt.png
 
#3
Hi Sempervivum,
danke für deine schnelle hilfe, klappt super, jetzt hab ich die Namen seperat was schon mal sehr cool ist..
aber wie mach ich das mit den Werten das sie mir dementsprechend auch aus dem test.txt gelesen werden..
Sorry bin noch super frisch auf dem Gebiet, trotzdem schon mal danke:)
 
#5
ich hab ja hier mein dropdown:

Code:
<body>

<select id="tst" ></select>

<p id="demo1"></p>

</body>
und im Paragraph id="demo" soll jetzt für den ausgewählten Hanz die 39 stehen ...
 

Sempervivum

Well-Known Member
#6
Auch kein Problem, ergänze dieses:
Code:
    <select id="tst"></select>
    <p id="demo1"></p>
    <script type="text/javascript">
        document.getElementById("tst").addEventListener("change", function () {
            document.getElementById("demo1").textContent = this.value;
        });


        function Populate(id, txt) {
            this.obj = document.getElementById(id);
 
Oben