Dynamisches Ändern eines Select Feldes!

MrRock

Mitglied
Hallo

Ich habe folgendes Problem:

Ich möchte Durch Eingabe in ein input-Feld on-the-fly die Namen von Autos aus einer Datei auslesen, die mit dem value des input-Feldes beginnen. Soweit so gut. Das funktioniert auch:
Code:
<html>
<head>
<title>Autosuche on the fly</title>

<script language="JScript">
function Suchen()
{
 var Datensaetze = 16;
 document.all.Anzeigetabelle.style.display = "none"; 
var eingabe =  document.Eingabe.Suchauto.value + "*";
var Suchausdruck = "";
 var Suchbegriffe = 0;
 if(document.Eingabe.Suchauto.value != "")
  {
   Suchausdruck = Suchausdruck + "Autos = " + eingabe;
   Suchbegriffe++;
  } 
 document.all.Cars.object.Filter = Suchausdruck;
 document.all.Cars.Reset();
 document.all.Anzeigetabelle.dataSrc = "#Cars";
 if(document.all.Cars.recordset.recordCount < Datensaetze)
  {
   document.all.Anzeigetabelle.dataPageSize = Cars.recordset.recordCount;
   document.all.Treffer.innerText = Cars.recordset.recordCount + " Suchtreffer!";
   document.all.Anzeigetabelle.style.display = "block"; 
  } 
 else 
   document.all.Treffer.innerText = "0 Suchtreffer!";
}
</script>
</head>


<body>

<object id="Cars" classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
 <param name="DataURL" value="autos.txt">
 <param name="UseHeader" value="true">
 <param name="Filter" value="">
 
</object>

<form name="Eingabe">
Suche nach Autos (on the fly)<br>
<input name="Suchauto" type="text" width=40 onKeyup="Suchen()"><br>
</form>

<table width=100%>
<tr>
<td valign=top colspan=5>
<span id="Treffer" style="color:#FF0000; font-weight:bold;"> </span>
</td>
</tr>
<tr>
<td bgcolor="#EEEEEE" valign=top width=20%><b>Autos:</b></td>
</tr>
</table>

<table id="Anzeigetabelle" style="display:none">
<tr>
<td>  <span datafld="Autos"></span> </td>
</tr>
</table>


</body>
</html>

Aber: ich möchte das die einzelnen Autos in ein select-Feld ausgegeben werden, da ich eines auswählen und per JSP auswerten möchte(um ein Datenblatt auszugeben etc.).
Wie mache ich das?
Da ich schon alle Foren und Tutorials durchsucht habe, bin ich ratlos.
Ich möchte auch auf PHP verzichten. Also reines JScript bzw JavaScript.

Wer hilft erhält Dank!

Marcus
 
Ich hab deinen Quelltext nicht gelesen - sorry.

Aber wenn du Optionen in ein Select-Feld einfügen willst (so hab ich das jetzt verstanden), solltest du dir das Option-Objekt ansehen!
 
Hallo.

Danke, die Idee sieht schonmal sehr gut aus!

ABER!

Wie bekomme ich die gefilterten Daten aus dem Cars-object in den select?
Würde eine Schleife mit Cars.recordset.recordCount machen um jedes mal einen eintrag in den select zu geben. Aber wie bekomme ich Zugriff auf die einzelnen Elemente im Cars-object?

Marcus

Nachtrag: Habe etwas gefunden...mal sehen ob es geht...bin trotzdem für Vorschläge offen
 
Zuletzt bearbeitet:
Der Zugriff auf die Ergebnisse gestaltet sich folgendermassen:
Code:
matches = Cars.recordset;//Ergebnisliste

if(matches.recordCount > 0)//Falls Treffer
    {
        matches.moveFirst();//Zeiger aufs erste Element setzen
        
        for (i = 0; i < matches.recordCount; i++)//Ergebnisliste durchlaufen
            {
                /**
                  * Hier kannst du jetzt per
                  * -----------------------------
                  * matches.Fields('Autos').value
                  * -----------------------------
                  * auf das jeweilige Auto zugreifen
                  * und bspw. eine Option daraus erzeugen
                  **/
                  
                  matches.moveNext();//Zeiger voranbewegen
             }
    }

Aber wenn du mich fragst... ich würd diese Technik nicht verwenden(es seih denn, du brauchst es für eine Anwendung, wo du IE als Browser vorrausetzen kannst... denn nur mit dem funktioniert das).

Ich vermute, dein Hinweis darauf, dass du kein PHP verwenden willst, bezieht sich darauf, dass du ein Neuladen des Dokumentes vermeiden willst.
Dies kannst du auch anders bewerkstelligen:
Erzeuge anhand der Daten in der Textdatei eine Javascript-Datei, welche die Daten in Form von Javascript-Arrays speichert. Diese Arrays kannst du dann mit jedem Browser bequem durchsuchen und die Liste erzeugen.
 

Neue Beiträge

Zurück