Hallo,
vor einiger Zeit (knapp 1 Jahr) habe ich mal etwas zu meiner Javascript Datenbank gepostet. Jetzt möchte ich sie erweitern, um nach mehreren gleichlautenden Treffern suchen zu können. Leider wird bis jetzt nur jeweils ein Treffer gefunden und wenn der Abfrage-Knopf dann nochmal gedrückt wird, wird ein 2. Treffer angegeben und dann ein 3. usw. egal, ob nun einer oder mehrere Treffer tatsächlich in der Datenbank vorhanden sind. Problem: Die Variable "treffer" wird jeweils nur dann hochgezählt, wenn der Button gedrückt wurde, soll aber immer wenn ein Datensatz gefunden wurde, weiter hochzählen.
Vielleicht hat jemand Interesse, sich das mal anzuschauen. Ich habe die Datensätze gekürzt, man kann nach "Absorption" suchen (kommt einmal vor), oder nach "Zeitkonstante" (kommt zweimal vor).
Die html-Datei zur Abfrage findet ihr hier: Datenbankabfrage
Was noch nicht im Code vorhanden ist: Wenn mehrere Treffer vorhanden sind, sollen diese mittels Link (in dem aufgerufenen Fenster) ein weiteres kleines Fenster mit dem nächsten Treffer-Inhalt öffnen usw.
Hier der Code für die (gekürzten) Datensätze - Daten.js:
Hier die Abfrage - DB.js:
Danke für ein paar Tips
Gruss aus Züri
Jacky
vor einiger Zeit (knapp 1 Jahr) habe ich mal etwas zu meiner Javascript Datenbank gepostet. Jetzt möchte ich sie erweitern, um nach mehreren gleichlautenden Treffern suchen zu können. Leider wird bis jetzt nur jeweils ein Treffer gefunden und wenn der Abfrage-Knopf dann nochmal gedrückt wird, wird ein 2. Treffer angegeben und dann ein 3. usw. egal, ob nun einer oder mehrere Treffer tatsächlich in der Datenbank vorhanden sind. Problem: Die Variable "treffer" wird jeweils nur dann hochgezählt, wenn der Button gedrückt wurde, soll aber immer wenn ein Datensatz gefunden wurde, weiter hochzählen.
Vielleicht hat jemand Interesse, sich das mal anzuschauen. Ich habe die Datensätze gekürzt, man kann nach "Absorption" suchen (kommt einmal vor), oder nach "Zeitkonstante" (kommt zweimal vor).
Die html-Datei zur Abfrage findet ihr hier: Datenbankabfrage
Was noch nicht im Code vorhanden ist: Wenn mehrere Treffer vorhanden sind, sollen diese mittels Link (in dem aufgerufenen Fenster) ein weiteres kleines Fenster mit dem nächsten Treffer-Inhalt öffnen usw.
Hier der Code für die (gekürzten) Datensätze - Daten.js:
PHP:
var Eingabe, a, b, d=0;
var amax=1000;
var AnzahlSpalten=amax;//Anzahl Datensätze
var AnzahlZeilen=5; //Anzahl Felder pro Datensatz
var treffer=0;
var trefferSpalten=new Array (8); //Anzahl der möglichen Treffer (gleiche Begriffe)
var db=new Array (AnzahlSpalten);
for (a=0; a<AnzahlSpalten; a++)
{
db[a]=new Array(AnzahlZeilen);
}
//hier sind die Suchbegriffe:
db[0][0]="absolute Temperatur";
db[0][1]="Wärme";
db[0][2]="Waerme/Waerme_Grundl/Indexcard/Icard_absolutTemp.html";
db[0][3]="Waerme/Waerme_Grundl/Tool/Tool_absolutTemp.html";
db[0][4]="Waerme/Waerme_Grundl/Waermemenge.html";
db[1][0]="absolute Luftfeuchte";
db[1][1]="Feuchte";
db[1][2]="Feuchte/Feuchte_Grundl/Indexcard/Icard_absLuftfeuchte.html";
db[1][3]="Feuchte/Feuchte_Grundl/Tool/Tool_absolutFeuchte.html";
db[1][4]="Feuchte/Feuchte_Grundl/Dampfdruck.html";
db[2][0]="Absorption";
db[2][1]="Wärme";
db[2][2]="Waerme/Waerme_Grundl/Indexcard/Icard_absorption.html";
db[2][3]="Waerme/Waerme_Grundl/Tool/Tool_absorption.html";
db[2][4]="Waerme/Waerme_Grundl/Waermestrahlung.html";
//gekürzt
db[181][0]="Zeitkonstante";
db[181][1]="Wärme";
db[181][2]="Waerme/Waerme_Grundl/Indexcard/Icard_zeitkonst.html";
db[181][3]="Datenbank/leer.html";
db[181][4]="Waerme/Waerme_Grundl/Waermetransm_dyn.html";
db[182][0]="Zeitkonstante*";
db[182][1]="Wärme";
db[182][2]="Waerme/Waerme_Grundl/Indexcard/Icard_zeitkonst_raum.html";
db[182][3]="Datenbank/leer.html";
db[182][4]="Waerme/Waerme_Grundl/Waermetransm_dyn.html";
Hier die Abfrage - DB.js:
PHP:
function abfrage()
{
Eingabe= window.document.forms[0].elements[0].value;
if (Eingabe != 0)
{
for (a=0; a<AnzahlSpalten; a++)
{
if (Eingabe==db[a][0])
{
treffer++;
trefferSpalten[treffer]=a;
}
}
}
if (treffer>0)
{
alert (treffer);
a=0;
ausgabe ();
}
else
{
alert ("Begriff ist nicht vorhanden");
var winDB;
winDB=window.open ("../Datenbank/leer.html", "Datenbankleer", "width=350,height=350,resizable=yes,titlebar=yes");
}
}
//Ausgabe des Suchergebnisses:
function ausgabe ()
{
a++;
if (a<=treffer && a>=1)
{
var win;
win=window.open ("", "Datenbankabfrage", "width=350,height=350,resizable=yes,titlebar=yes");
var gesuchterBegriff;
var Kapitel;
var Indexcard;
var Tool;
var Link;
gesuchterBegriff=db[trefferSpalten[a]][0];
Kapitel=db[trefferSpalten[a]][1];
Indexcard=db[trefferSpalten[a]][2];
Tool=db[trefferSpalten[a]][3];
Link=db[trefferSpalten[a]][4];
win.document.open (); //Methode darf wegen Netscape keinen Inhalt erhalten (z.B. ("html/text")), funktioniert sonst nicht!!
win.document.bgColor="CCCCCC";
win.document.fgColor="003366";
win.document.write ("<H3>Ihre Suche ergab folgendes Ergebnis: "+ treffer + " Treffer</H3>");
win.document.write ("<H3>Sie sehen hier Treffer Nr. "+ a + "</H3>");
win.document.write ("<H4>Suchbegriff: <A HREF=http://www.bph.hbt.arch.ethz.ch/Filep/" + Link + " TARGET=_blank>" + gesuchterBegriff + "</A></H4>");
win.document.write ("<H4>Kapitel: " + Kapitel + "</H4>");
win.document.write("<H4>IndexCard:</H4><A HREF=http://www.bph.hbt.arch.ethz.ch/Filep/"+Indexcard+"><IMG SRC=http://www.bph.hbt.arch.ethz.ch/Filep/GeneratedItems/indexcard.gif border=0></A>"); // funktioniert nur ohne die "" bei indexcard.gif
win.document.write("<H4>KnowledgeTool:</H4><A HREF=http://www.bph.hbt.arch.ethz.ch/Filep/"+Tool+"><IMG SRC=http://www.bph.hbt.arch.ethz.ch/Filep/GeneratedItems/tool.gif border=0></A>");
win.document.write("<H4></H4>"); //Zeile notwendig wegen Netscape, sonst erscheint Bild aus vorhergehender Zeile nicht!
}
}
Danke für ein paar Tips
Gruss aus Züri
Jacky