Artikelsammlung nach mehreren Kriterien durchsuch?

Hallo,

ich werde eine Sammlung zahlreicher Artikel auf einer Website online stellen. Ein bisschen HTML kann ich, so dass das kein Problem ist.

Meine Frage heute bezieht sich darauf, wie ich die Artikel durchsuchbar machen kann.

Nehmen wir mal an, ich habe 500 Artikel auf einzelnen Seiten. Der Besucher der Website soll in einem Suchformular mehrere Kriterien auswählen können:

Das Jahr des Artikels als Dropdown oder in Kontrollkästchen angekreuzt.

Eine oder mehrere Kategorien des Artikels auswählen.

Ein Wort eingeben, das im Artikel enthalten sein soll.

Und vielleicht noch mehr.

Das Ergebnis soll als Liste der Artikel angezeigt werden, wobei von jedem Artikel die ersten vier oder fünf Zeilen angezeigt werden und man mit einem Link zum kompletten Artikel kommt.

Das wars. Wie kann man das auf einer Website realisieren?

Danke
Dfx

PS: Mir fällt gerade ein, dass das so ähnlich aussehen sollte wie bei Ebay, wo man in der linken Spalte auch einige Eigenschaften sowie die Entfernung einstellen kann, die anschließend in den Suchergebnissen gezeigt werden.

Moin,

ich werde eine Sammlung zahlreicher Artikel auf einer Website
online stellen.

Soweit klar. Also reine HTML-Dateien ohne Datenbank u.ä.

Ein bisschen HTML kann ich, so dass das kein
Problem ist.

Entweder man kann HTML oder man kann es nicht. „Ein Bisschen“ geht nicht, aber das nur am Rande :smile:

Meine Frage heute bezieht sich darauf, wie ich die Artikel
durchsuchbar machen kann.

Dazu brauchst Du einen Mechanismus, der auf alle Seiten direkt zugreifen kann. Sowas geht nicht mit HTML/CSS, weil Du dazu eine Programmiersprache brauchst, HTML ja nur für die Semantik des Inhalts ist und CSS für Layout und Aussehen. Und es geht nicht im Browser, weil der Browser auch keinen direkten Zugriff hat.

Also musst Du dazu ein serverseitiges Script schreiben, z.B. in PHP oder Perl. Bestimmt gibt es auch im Netz irgendwo sowas vorgefertigt zu finden, aber da ich sowas - wenn ich es brauche - selber schreibe, kann ich Dir keine Quellen nennen.

Wichtig für Dich ist aber auch, dass Dein Webspace Dir die Anwendung solcher Script ermöglicht.

Das wars. Wie kann man das auf einer Website realisieren?

Mit einem HTML-Formular und einem serverseitigen Script.

PS: Mir fällt gerade ein, dass das so ähnlich aussehen sollte

Wie das optisch dargestellt wird, ist Sache von CSS und hat erstmal mit der Bereitstellung der Daten nichts zu tun.

Wenn Du keine Ahnung vom Programmieren hast, bietet es sich für Dich an, eine vorgefertigte Lösung zu suchen. Der Nachteil bei sowas ist halt immer, dass es meistens nicht *die* Lösung gibt, die alle Deine Wünsche erfüllt.

Je nachdem, für was das Ganze ist, kann es aber auch Sinn machen, einen Profi damit zu beauftragen.

Oder - wenn Du Zeit hast - dann bringst Du Dir das Wissen in ein paar Monaten selber bei.

Freundliche Grüße,
-Efchen

Danke, erledigt, nun weitere Fragen
Hallo Efchen,

vielen Dank!

Ich habe deine Ratschläge befolgt und mir das Wissen angeeignet.

Anhand von Beispielen habe ich nun eine funktionierende Kombination von MySQL, PHP, Ajax und Javascript.

Aus dem Beispiel war für mich jedoch nur ein Textfeld möglich:

Wenn ich ein a eintippe, erscheinen sofort alle Datensätze, in denen ein a vorkommt. Soweit schon mal super.

Meine Frage:

Ich brauche gar kein Textfeld sondern zunächst mal nur zwei Kontrollkästchen, wo immer nur eines angekreuzt sein kann.

Hättest du einen Hinweis, wie das geht? Dazu habe ich noch kein Beispiel gefunden, und ich lerne halt sehr schnell durch Beispiele.
Ich hänge unten mal meinen Code an.

Danke
Dfx

Ajax Suche
function searchFor(suchbegriff){
var xmlHttp = null;
// Mozilla, Opera, Safari sowie Internet Explorer 7
if (typeof XMLHttpRequest != ‚undefined‘) {
xmlHttp = new XMLHttpRequest();
}
if (!xmlHttp) {
// Internet Explorer 6 und älter
try {
xmlHttp = new ActiveXObject(„Msxml2.XMLHTTP“);
} catch(e) {
try {
xmlHttp = new ActiveXObject(„Microsoft.XMLHTTP“);
} catch(e) {
xmlHttp = null;
}
}
}
// Wenn das Objekt erfolgreich erzeugt wurde
if (xmlHttp) {
var url = „search.php“;
var params = „suchbegriff=“+suchbegriff;

xmlHttp.open(„POST“, url, true);

//Headerinformationen für den POST Request
xmlHttp.setRequestHeader(„Content-type“, „application/x-www-form-urlencoded“);
xmlHttp.setRequestHeader(„Content-length“, params.length);
xmlHttp.setRequestHeader(„Connection“, „close“);

xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
// Zurückgeliefertes Ergebnis wird in den DIV „ergebnis“ geschrieben
document.getElementById(„ergebnis“).innerHTML = xmlHttp.responseText;
}
};
xmlHttp.send(params);
}
}