Beiträge von Stef

    Hey,

    Arne Drews :

    Zitat

    Für jeden KeyUp einen Request durchzuführen halte ich für übertrieben.

    Zunächst empfehle ich, erst nach dem dritten Zeichen aktiv nach möglichen Ergebnissen zu suchen.

    Dann sollte man gleich alle Ergebnisse in eine Liste laden und per JS vorhalten. Damit hat man im Idealfall (!) nur einen Request und erhält deutlich schnellere Ergebnisse über die JS-Suche.

    Stell Dir vor, man gibt ein Wort mit 25 Buchstaben ein, dann hast Du mind. auch 25 HTTP Requests für die Suche.

    Da ein XmlHttpRequest asynchron ist, sind manche davon sogar überflüssig, weil beim Response bereits ein weiterer Buchstabe eingegeben wurde und die per HTTP erhaltene Auswahlliste in der Größe gar nicht mehr benötigt wird.

    Okay. Da gebe ich dir recht. Das ist schon übertrieben. Danke für den Hinweis. Wir sind ja hier um zu lernen. :)

    Kannst du mir denn sagen, warum die Links nicht im Quellcode angezeigt werden, bei meiner Lösung?

    Wäre dir sehr dankbar.

    hunny design :

    Wir beide haben dir ja schon einen Leitfaden gegeben. Dann verlangen wir auch, dass du dir die Materie genauer anschaust.

    Schlagwörter sind:

    - EventListener Keyup

    - XMLHttpRequest

    - Mysql Like-Statement

    - Click-Event auf Links intialisieren

    Grüße,

    Stef

    Ich habe eben nochmal getestet. Es wird keine Ausgabe im Quelltext angezeigt. Da ist es klar warum die Click-Events nicht funktionieren.

    Wenn ich den CodeTeil, mit dem EventListener Click, in der anonymen Function bei der die Response ausgegebe dann funktioniert es aber es wird in das input Feld undefined hineingeschrieben. Das heißt die Werte sind in der HTML-Datei unbekannt.

    Weiß jemand warum das so ist?

    Hey,

    ich habe jetzt was erstellt. Ich finde nur es komisch, dass die click-events auf den Links nicht funktioniert.

    Die Links sollten doch nach der Ausgabe da sein im DOM?

    form.html:

    form.php:

    Hey,

    dies kannst du mit PHP, JS und Ajax erstellen.

    Auf das Inputfeld intialisierst du ein keyup Event. Bei jedem keyup wird ein Request über Ajax zur PHP-Datei ausgeführt. In dieser PHP-Datei überprüfst du dann das gesendete Wort und führst eine DB-Abfrage mit Like durch. Dann werden dir alle Beiträge aus der Datenbank als Response wieder an das andere Script gesendet. Diese Response kannst du dann ausgeben z.b. als Link. Und diesem gibst du dann die Value des Suchwortes mit. Nun intialisierst du auf alle Links das click-Event und fragst die Value des gedrückten Links ab und gibst diesen dann im input feld aus.

    Grüße,

    Stef

    Hey,

    Es steht nicht hinter jeden Formular eine Datenbank. Oft ist dies aber der Fall.

    Meiner Ansicht nach ist es mit der Datenbank viel übersichtlicher und strukturierter als viele Text-Dateien.

    Du hast nun z.b die Bereiche Kontaktformular und Home.

    Beim Kontaktformular brauchst du noch das Formular. Bei Home musst du noch das Design anpassen.

    Dann kannst du ein Formular erstellen in dem du die Bereiche auswählen kannst und die Aufgaben die noch erledigt werden sollen.

    Wenn du das Formular dann absendest wird es in die Datenbank gespeichert. Nun brauchst du lediglich die Daten für die Bereiche aus der Datenbank zu ziehen und dann hast du diese auch vorliegen.

    Dies ist besser als viele Textdateien.

    Die Daten kannst du dann auch in einem Formular anzeigen und bearbeiten. Darüber hinaus kannst du es auch so machen, dass du die Sachen, welche du bereits gemacht hast, grün markierst. So hast du immer den Überblick.

    Wenn du es mit Textdateien machen willst dann kannst du alle Daten aus dem Formular in eine Textdatei speichern.

    Folgende Funktionen sind dabei wichtig:

    file_get_contents();

    file_put_contents();

    Grüße,

    Stef

    Guten Morgen,

    ja genau dies meinte ich.

    Okay.

    Warum wird denn $page > $paginationLinks ? 1 : 0;  zuerst überprüft und danach erst $page == 1?

    Bei Rechnungen sollte man ja generell auf Punkt und Strich achten. Das heißt bei Rechnungen wo man multipliziert und addiert, aber man möchte, dass das Addieren zuerst durchgeführt wird setzt man diese Klammern oder aufgrund, wie du bereits geschriebn hast, Übersichtlichkeit.

    Grüße,

    Stef

    Okay. Du hast recht.

    Ich meinte damit, dass wenn ein Anfänger darauf schaut, dieser es erstmal nicht verstehen würde.

    Ich habe diese Frage schon mehrmals gestellt aber ich verstehe in diesem Zusammenhang nicht die Verwendung der Klammern () umrum der Zuweisungen.

    Wieso benutzt du diese in diesem Fall?

    Gruß,

    Stef

    Ja so im allgemeinen stimmt das.

    Das Problem ist was ich habe, dass wenn von einer Paginationsseite alle User gelöscht werden, zwar die User der anderen Seite angezeigt werden aber in der URL als Parameter nicht page=1 steht sondern weiterhin die leere Seite page=2.

    Beispiel:

    Ich habe 2 Seiten, das heißt $linkKey ist 0 und 1. Es werden deshalb 2 Durchgänge gestartet im ersten wird dann die 0 auf 1 gesetzt und im 2ten die 1 auf die 2.

    In $page ist der Wert des Url-Parameters page. Nun lösche ich auf Seite 2 alle User. In der URL bleibe ich aber auf Seite 2 obwohl mir schon alle User von Seite 1 angezeigt werden.

    Das heißt die Variable $page hat den Wert 2 und $linkKey besitzt nurnoch 1nen Link, also nurnoch den Key 0. Und da nur 1 Schlüssel vorhanden ist wird die foreach-schleife nur einmal durchgegangen. Und somit hat $linkKey nach diesem Durchlauf den Wert 1. Da page immernoch den Wert 2 hat und die Bedingung erfüllt wird werden auf die Variable $key 5 draufaddiert.

    Aus diesem Grund überprüfe ich zusätzlich ob die $page größer als die Anzahl der Paginationslinks ist, ob die $page gleich 1 ist und $page größer als $linkKey ist.

    Die erste Überprüfung führe ich durch damit, wenn $page größer als die Anzahl der Paginationslinks ist, zum $key nichts dazuaddiert wird. Die zweite führe ich durch damit wenn es nurnoch die Seite 1 gibt nichts auf $key dazuaddiert wird und die dritte Überprüfung führe ich durch damit wenn der Wert von $page größer ist als der Wert der Arrayschlüssel des Array $links nach dem addieren auf $key 5 addiert werden.

    Grüße

    Stef

    Nein das stimmt so nicht.

    Denn wenn ich, wie bereits gesagt, von einer Pagination Seite alle User lösche und auf page1 komme wird in der URL immernoch als Parameter page=2 angezeigt.

    Die Überprüfung bezieht sich ja darauf, ob der Wert von diesem Paramter größer als die Anzahl der Paginationlinks sind. Wenn dies der Fall ist, welcher es momentan kmmer ist, wird anstatt 5, 0 draufaddiert. Somit stimmt die Ausgabe wie viel User von ... Usern.

    Lass ich die Überprüfung weg entstehen wieder falsche Keywerte.

    Grüße,

    Stef

    Guten Tag alle zusammen,

    ich habe es nun hinbekommen, dass alles passt mit folgendem Script:

    Grüße,

    Stef

    Kannst du uns mal erklären, wie man das praktisch umsetzt? Sorry, wenn ich so doof frage, aber ich weiß echt nicht wie man das in diesem Forum macht.

    In dem Text-Editor, in dem du Beitrage erstellst, sind in der Navigation oben Funktionen wie bold, underline, usw.. Und in dieser Navigation, von ganz rechts außen, die 3 Funktion wählen (</>). Dann erscheint ein Fenster wo du dein Code reinkopieren kannst. Oft musst du auch einstellen welche Programmiersprache das ist, weil der Editor das manchmal nicht erkennt.

    Hey,

    Okay. Diese Methode, der Query die Parameter mitzugeben, sehe ich das erste mal.

    Zitat


    Ich würde die Werte gefühlt nicht über :start und :offset per bindParam übergeben

    Warum denn nicht? Was spricht gegen bindParam in diesem Fall?

    Ich habe mir nochmal Gedanken übder die Useranzeige gemacht.

    Mein jetziger Scriptablauf, der in den richtigen Weg geht nach meiner Ansicht nach ist so:

    Ich füge dem Array links die Paginationlinks zu. Für jeden Link, also 1, 2, 3, wird im Array ein neuer Key hinzugefügt.

    Nun wenn ich auf Seite 3 bin. Und den letzten User lösche, werde ich in der foreach-schleife Überprüfen ob der GET-Parameter page, welcher in der Variable $page abgespeichert wurde, größer als die Anzahl der Keys im Array links sind. Denn wenn ja auf der 3ten seite der letzte User gelöscht wird hat man nurnoch 2 Paginationslinks. Und im if-else Statement wird dann wenn dies der Fall ist von der Variable $page 1 abgezogen. Somit ist man auf der aktuellen Page. Und der Key wird mit 0 addiert. Darüberhinaus überprüfe ich ob die Page gleich 1 ist. Wenn dies der Fall ist sollen ja die 5 nicht mit dem Key addiert werden. Wenn Page ungleich 1 ist wird der Key mit 5 addiert.

    Nun habe ich aber da auch ein Problem. Es werden dann auf "Page 2" die Userdaten von Page 1 angezeigt, was ich ehrlich gesagt nicht verstehe.

    Denn in $page stehen danach 2 drin und in der Variable welche die Schlüssel des Arrays links ermittelt auch 2 (habe auf beide var_dump angewendet). Somit kann es doch nicht sein, dass die Userdaten von Page 1 angezeigt werden.

    Der Code: