Such-Funktion, aber wie?
Jan
- asp.net
0 Frank (DD)0 Jan0 Frank (DD)0 Jan
0 Uwe Nohl0 Uwe Nohl
Hallo Leute!
Folgendes: Ich hab eine Seite, bei der man verschiedene Jahre und Monate (mit Checkboxen) "markieren" kann. Nun brauche ich eine Suchfunktion, die mir die Datensätze nach den markierten Bereichen heraussucht.
Ich möchte jetzt nicht, dass mir gleich jemand den gesamten Code präsentiert.
Doch weiß jemand vielleicht einen Ansatz, der mir weiterhelfen könnte? Oder eine Seite, auf der ein Beispiel-Script zu diesem Thema zu finden ist?
Gruß, Jan
Hallo Leute!
Folgendes: Ich hab eine Seite, bei der man verschiedene Jahre und Monate (mit Checkboxen) "markieren" kann. Nun brauche ich eine Suchfunktion, die mir die Datensätze nach den markierten Bereichen heraussucht.
Ich möchte jetzt nicht, dass mir gleich jemand den gesamten Code präsentiert.
Doch weiß jemand vielleicht einen Ansatz, der mir weiterhelfen könnte? Oder eine Seite, auf der ein Beispiel-Script zu diesem Thema zu finden ist?Gruß, Jan
Hi Jan,
äh ja, willst du das DB-basiert machen oder Textfile-basierend? Auf jeden Fall brauchst du irgendwo eine Art Informationskontainer, wo alle Infos drin stehen samt deinen Attributen, nach denen du suchen willst. Z. B. eine Tabelle in einer DB... Feld 1 = Referenz auf Ergebnis oder Ergebnis selbst, Feld 2 bis x = Attribute (Jahre, Monate etc)
und dann läßt du dir eine Logik einfallen in welcher Weise du das Suchen beginnen willst. Nach dem Schema "SELECT FROM tbl WHERE ..... "
und dann gehst du jede Suchvariable in einer Schleife durch, die jedes mal die Abfrage in der DB macht... und die Ergebnisse schreibst du immer mit Response.Write in die Ausgabe...
Andere möglichkeit, Volltextsuche in Textdateien
als Beispiel www.schaefer-it.com
unter Produkte die Suchfunktion liest durch alle Produkt-htm's und listet alle auf, die das Suchwort beinhalten.
Gruß, Frank
Hallo Frank!
Das basiert alles auf ner Access-Datenbank. Also das Grundgerüst steht, die ASP-Seiten sind alle gemacht, die Datenbankanbindung steht. Das hab ich alles hergebracht, nur wo ich eben auf dem Schlauch stehe, ist die Suchfunktion.
Select from where ist logisch, das hat man mir schon geraten. Aber wie genau spreche ich die markierten Checkboxen an, die er dann für die Suche verwenden soll? Achja, es sind noch 3 Drop-Downfelder dabei.
Gruß, Jan
Hallo Frank!
Das basiert alles auf ner Access-Datenbank. Also das Grundgerüst steht, die ASP-Seiten sind alle gemacht, die Datenbankanbindung steht. Das hab ich alles hergebracht, nur wo ich eben auf dem Schlauch stehe, ist die Suchfunktion.
Select from where ist logisch, das hat man mir schon geraten. Aber wie genau spreche ich die markierten Checkboxen an, die er dann für die Suche verwenden soll? Achja, es sind noch 3 Drop-Downfelder dabei.Gruß, Jan
Hi Jan,
DB-basiert, na das ist doch n Anfang. Hast du deine Daten darin logisch strukturiert - jeder Datensatz muß dann mit Attributen ausgezeichnet werden, nach denen du suchen willst, z. b. Datum o.ä.
Jetzt nimmst du dir die ASP-Seite, wo deine Checkboxen drauf sind. Mach ein abschickbares Formular draus. <form method=Post> - so ruft es sich selbst noch mal auf oder nimm ein neue Seite für die Auswertung. Für die Auswertung gehst du einfach jede abgesendete Variable in einer Schleife durch. <% for each varaible in Request.Form Next %> und in die Schleife baust du die Abfragefunktion für deine DB ein. So wird bei jedem Durchlauf die DB nach Ergebnissen durchsucht, die du dann mit Response.Write einfach untereinander schreibst und ggf. verlinkst.
DIE LOGIK MUSS ZUERST KOMMEN, nur da herum kannst du dir deine Seiten programmieren.
Viele Grüße, Frank
P.S. schon mal auf www.aspin.com geschaut, da gibt es jede Menge Scripte, vielleicht kannst du dir dort eins abgucken...
Hallo!
DB-basiert, na das ist doch n Anfang. Hast du deine Daten darin logisch strukturiert - jeder Datensatz muß dann mit Attributen ausgezeichnet werden, nach denen du suchen willst, z. b. Datum o.ä.
»»
Ich geb den Datenfeldern immer leicht nachzuvollziehende Namen. So kann ich sie mir besser merken. Also von dem her passt es.
Jetzt nimmst du dir die ASP-Seite, wo deine Checkboxen drauf sind. Mach ein abschickbares Formular draus.
Ein Formular ist es schon, denn ohne <form> stellt der NS die Checkboxen und Dropdownfelder nicht dar. Nur ist es eben noch nicht abschickbar.
Für die Auswertung gehst du einfach jede abgesendete Variable in einer Schleife durch. <% for each varaible in Request.Form Next %> und in die Schleife baust du die Abfragefunktion für deine DB ein. So wird bei jedem Durchlauf die DB nach Ergebnissen durchsucht, die du dann mit Response.Write einfach untereinander schreibst und ggf. verlinkst.
Also das klingt doch recht einleuchtend. Es ist so bei uns, wir haben nen erfahrenen ASP-Programmierer, der diese Funktion locker könnte. Ich möchte aber doch versuchen, sie möglichst alleine zu machen.
Mit diesen Ansätzen kann ich jetzt schon mal anfangen, im Notfall kann ich mich immer noch an den Kollegen wenden.
Danke!
Gruß, Jan
P.S. schon mal auf www.aspin.com geschaut, da gibt es jede Menge Scripte, vielleicht kannst du dir dort eins abgucken...
Die Seite gehört schon zu meinen Standards :o) Hab aber wirklich glatt vergessen, mich da genau umzusehen.
Hallo Jan,
Folgendes: Ich hab eine Seite, bei der man verschiedene Jahre und Monate (mit Checkboxen) "markieren" kann. Nun brauche ich eine Suchfunktion, die mir die Datensätze nach den markierten Bereichen heraussucht.
Also, den Checkboxen im Formular der Aufrufedatei für die Monate eines Jahres gibst Du einen gemeinsamen Namen, z.B die Jahreszahl selbst. Die Jahre selbst benötigen dann keine checkbox!
Die Werte lauten dann z.B
<form ...>
...
1997
...
<p>Jahr 1998</p>
Monate:
<input type="checkbox" name="1998" value="Januar">Januar
<input type="checkbox" name="1998" value="Februar">Februar
usw.
...
1999
...
</form>
In der auswertenden asp folgendes:
<%for each name in request.form
stmon = ""
for each varvalue in request.form(name)
if stmon = "" Then
stmon = "'" & varvalue & "'"
else
stmon = stmon & ",'" & varvalue & "'"
end if
sql = "select irgenwas from tabelle where jahrspalte in (" & request.form(name) & ") and monatspalte in (" & varvalue & ")"
rs.open sql, conn%>
lies den recordset aus zb. in html-tabellenabschnitt
rs.close
<%Next%>
So etwa würd ichs machen. Hoffe einen ungefähren Anstoss gegeben zu haben.
Gruss
Uwe Nohl
rs.open
Und für die Jahre analog.
Hallo Jan,
sorry, ich war mitten im Schreiben aus dem Netz geflogen und musste neu einloggen. Also jetzt vollständig:
Also, den Checkboxen im Formular der Aufrufedatei für die Monate eines Jahres gibst Du einen gemeinsamen Namen, z.B die Jahreszahl selbst. Die Jahre selbst benötigen dann keine checkbox!
Die Werte lauten dann z.B
<form ...>
...
1997
...
Jahr 1998</p>
Monate:
<input type="checkbox" name="1998" value="Januar">Januar
<input type="checkbox" name="1998" value="Februar">Februar
usw....
1999
...
</form>In der auswertenden asp folgendes:
<%for each name in request.form
stmon = ""
for each varvalue in request.form(name)
»» if stmon = "" Then
stmon = "'" & varvalue & "'"
»» else
stmon = stmon & ",'" & varvalue & "'"
»» end if
»» sql = "select irgenwas from tabelle where jahrspalte in (" & request.form(name) & ") and monatspalte in (" & varvalue & ")"
»» rs.open sql, conn%>
»» lies den recordset aus zb. in html-tabellenabschnitt
»» rs.close
<%Next
Next%>
Nochmals MfG
Uwe Nohl