Suchfunktion
Rayko
- javascript
0 Simon Reinhardt0 Rayko
0 Lutz T.
Ich habe einen Text angelegt, der in etwa so aussieht:
Filmname, FSK: <Zahl>, Darsteller: <Namen>; Genre: <Genre>
Filmname, FSK: <Zahl>, Darsteller: <Namen>; Genre: <Genre>
und so weiter...
Beispiel:
Rocky, FSK: 16, Darsteller: Sylvester Stallone; Genre: Action
...(insgesamt über 3000 Filme)
das hab ich gespeichert unter "filme.txt"
Und nun hab ich bei SELFHTML versucht die Suchfunktion herauszufinden und abzuleiten....
Also wenn ich ins Suchfeld z.B. Sylverster Stallone eingebe, das mir dann alles in einer Tabelle ausgegeben wird wo der Name drinsteht
und zwar die komplette Zeile.
Also wenn ich "Jurassic" eingebe müsste dann ausgegeben werden:
Jurassic Park, FSK: 16, Darsteller: Sam Neill, Genre: Action
Jurassic Park II, FSK: 16, Darsteller: Sam Neill, Genre: Action
Jurassic Park III, FSK: 16, Darsteller: Sam Neill, Genre: Action
Oder wenn ich nen schauspielernamen eingeb das alle filme wo bei darsteller der gesuchte steht, dann ausgegeben werden, mit allen infos aus dieser zeile
Ich hoffe mir kann hier jemand helfen...
Gruß Rayko
Hi!
Hm, es gibt da zwar im IE einen Ansatz, Textdatei-Datenbanken über JS einzulesen http://selfhtml.teamone.de/dhtml/modelle/datenanbindung.htm, aber das funktioniert wie gesagt nur im IE.
Von daher wären hier serverseitige Techniken (PHP z.B.) angebrachter - wenn die Möglichkeit dazu gegeben ist.
VG Simon
Hi!
Hm, es gibt da zwar im IE einen Ansatz, Textdatei-Datenbanken über JS einzulesen http://selfhtml.teamone.de/dhtml/modelle/datenanbindung.htm, aber das funktioniert wie gesagt nur im IE.
Von daher wären hier serverseitige Techniken (PHP z.B.) angebrachter - wenn die Möglichkeit dazu gegeben ist.
VG Simon
Ja es ist möglich, nur hab ich von php noch weniger ahnung...
mysql-webspace hab ich auch...nur sind das rote tücher für mich, ich bin froh das ich html gerafft hab :)
noch ein paar daten:
Es werden etwas über 3100 Filme sein, also müsste die einfache möglichkeit mit dem text noch gehen...ich probier die erstmal aus, wenn es nicht geht meld ich mich wieder, erstmal danke für eure hilfe!
gruß muta
Ich habe einen Text angelegt, der in etwa so aussieht:
Filmname, FSK: <Zahl>, Darsteller: <Namen>; Genre: <Genre>
Filmname, FSK: <Zahl>, Darsteller: <Namen>; Genre: <Genre>
und so weiter...
Beispiel:
Rocky, FSK: 16, Darsteller: Sylvester Stallone; Genre: Action
...(insgesamt über 3000 Filme)
das hab ich gespeichert unter "filme.txt"
Und nun hab ich bei SELFHTML versucht die Suchfunktion herauszufinden und abzuleiten....
Also wenn ich ins Suchfeld z.B. Sylverster Stallone eingebe, das mir dann alles in einer Tabelle ausgegeben wird wo der Name drinsteht
und zwar die komplette Zeile.
Also wenn ich "Jurassic" eingebe müsste dann ausgegeben werden:
Jurassic Park, FSK: 16, Darsteller: Sam Neill, Genre: Action
Jurassic Park II, FSK: 16, Darsteller: Sam Neill, Genre: Action
Jurassic Park III, FSK: 16, Darsteller: Sam Neill, Genre: Action
Oder wenn ich nen schauspielernamen eingeb das alle filme wo bei darsteller der gesuchte steht, dann ausgegeben werden, mit allen infos aus dieser zeile
Ich hoffe mir kann hier jemand helfen...
Gruß Rayko
Hallo Rayko,
es gibt da ein paar Ansätze mittels dynamischer Datenanbindung, die allerdings Browserabhängig sind. Wenn Du eine Variante willst die von möglichst vielen Browsern unterstützt wird, empfehle ich die folgende Variante: Mach aus deiner Textdatei eine Javascript-Datei (z.B. daten.js) und pack den ganzen Text in eine Variable, z.B. so:
Daten="\ Rocky,16,Sylvester Stallone,Action;\ Die Abenteuer der Micky Mouse,6,Donald Duck,Trickfilm;\ Die Jagd nach dem ultimativen JavaScript Code,16,Rayko,Psycho;\ ";
Dann kannst du die JS-Datei in die HTML-Datei includen und den Text auswerten, z.B. so:
<html><head>
<script language="JavaScript" src="daten.js"></script>
</head><body>
<script language="JavaScript">
var FeldTrenner=",";
var ZeilenTrenner=";";
var Zeilen=0;
var Spalten=0;
var Eintrag="";
var i, Zeichen;
Tabelle=new Array();
Tabelle[0]=new Array();
for (i=0; i<Daten.length; i++)
{ Zeichen=Daten.charAt(i);
if (Zeichen==FeldTrenner)
{ Tabelle[Zeilen][Spalten]=Eintrag;
Spalten++;
Eintrag="";
}
else
{ if (Zeichen==ZeilenTrenner)
{ Tabelle[Zeilen][Spalten]=Eintrag;
Zeilen++;
Tabelle[Zeilen]=new Array();
Spalten=0;
Eintrag="";
}
else
{ Eintrag=Eintrag+""+Zeichen;
}
}
}
function Find(Spalte,Wert)
{ var ii, jj, tt;
for (ii=0; ii<Zeilen; ii++)
{ if (Tabelle[ii][Spalte]==Wert)
{ tt="";
for (jj=0; jj<Tabelle[ii].length; jj++)
{ tt+="\n"+Tabelle[ii][jj];
}
alert(tt);
}
}
}
Find(1,"16");//findet alle Einträge, wo zweite Spalte=16 ist
</script>
</body></html>
Die Sache sollte man aber nur bei kleinen Datenmengen so realisieren. Bei wirklich großen Datenmengen kommt eigentlich nur eine serverseitige Lösung in Frage, weil die Übertragung des gesamten Datenbestandes an den Client eigentlich nicht zumutbar ist.
Gruß Lutz.
Lutz, kuck mal bitte hier: http://www.hatschie.de/test/
dort hab ich das so gemacht wie du gesagt hast....
nur wollte ich das wie bei ner suchmaschine, ein eingabe feld
wo der user der auf die seite kommt nach nem film, oder schauspieler suchen kann
Lutz, kuck mal bitte hier: http://www.hatschie.de/test/
dort hab ich das so gemacht wie du gesagt hast....
nur wollte ich das wie bei ner suchmaschine, ein eingabe feld
wo der user der auf die seite kommt nach nem film, oder schauspieler suchen kann
Hi Rayko,
Die Datei suche.htm müßte natürlich noch erweitert werden,
mach da ein paar input-felder oder select-felder und eine button "suchen", dann müßte die Funktion Find() dementsprechend abgeändert werden, daß sie die Suchergebnisse nicht per alert, sondern z.B. in einem anderen Frame als Tabelle ausgibt, ich denke das ist eine hübsche Programmierübung für Dich.
Langfristig solltest Du aber mal sehen, daß Du die Sache serverseitig mittels Datenbankabfrage löst. Das ist ein relativ kleines Projekt, genau richtig für einen Neuling auf dem Gebiet.
Ich wünsche schon mal viel Spaß beim Programmieren.
Lutz.