ich hab 3 (4) Ajax-Suchscripte (mit dynamischer Ausgabe während des Tippens). Grob zusammengefasst:
1) Geht: Ist steinalt und ich hab hier eine Sackgasse drin - aus div. Gründen möchte ich den also ersetzen.
Bissel Javascript für das AJAX-Script. Dazu einfacher PHP-Code für Datenbank und Ausgabe über PHP (wie heißt das noch wo ich in einer Zeile "STARTHTML" (oder was auch immer - Freie Wahl) schreibe und paar Zeilen das ganze schließe). Klappt. Quelle dafür: Google

2) Problem: Mehr Javascript für Ajax. PHP-Code mit Prepared Statements für die DB - Ausgabe über echo an DIV (via JS geregelt - klar). Quelle: ChatGPT & Bing
3) Problem: PHP-Code, Prepared Statements für DB. Ausgabe über JSON an JavaScript. Das JS erstellt auch die eigentliche Ausgabe (div, p, h4). Quelle: ChatGPT & Bing
4) Klappt im Original, in meiner Kopie nicht: Die PHP-Codebasis konnte ich von der Webseite natürlich nicht kopieren. Aber CSS, Ausgabe etc. PHP ist wie bei 2). Das Original klappt (hab ich nur leider nichts von), meine Kopie nicht.
Leider hab ich für folgendes Problem keinerlei Ansatz zum Troubleshooten ....
Die Suchfunktion klappt ansich. Ich Tippe "A" und alles mit A kommt usw. Klappt recht gut und ist sogar performanter als ich dachte. ABER - laut Laufzeitanalyse wird nach ~4200-4400ms die search.php neugeladen was zur folge hat: ich bekomme ALLES angezeigt was die Datenbank hergibt (also natürlich hab ich eine Begrenzung drin.. - das ist nicht das Problem).
Ich hab es mehrfach durchgespielt - es sind immer 4200-4400ms. Ich hab die Prepared Statements mal entfernt und sah auch hier das sich script.php nach ~4400ms neu geladen hat. Natürlich hab ich schon alles geprüft ob ich reload drin habe oder so... Ist aber nicht so. Das Suchfeld wird übrigends nicht resetet. Es steht dann XYZ drin, aber mir wird ABC[...]XYZ angezeigt.
Bevor ich hier jetzt tonnenweise Code poste, würde ich erstmal abklären ob ich hier nicht vielleicht etwas grundsätzliches falsch gemacht habe. Ich habe von AJAX/JS keine Ahnung - den allerersten Code hab ich mir vor Jahren im Netz gesucht und hat auch anhieb geklappt. Der ist auch noch übersichtlich. Der Code von 2/3 ist recht umfangreich. K.a. was ich da problemlos mal rausnehmen kann bzw. umschreiben kann/darf. [PS: die Webseite ist nicht öffentlich]
Vielleicht ist es ja ein Bekanntes Problem was Leute gerne bauen, wenn sie keine Ahnung haben

Vielleicht gibt es irgendwelche Timeouts bei JS die man hier bedenken muss, die aber nicht bedacht wurden? Es hat so das gefühl das nach 4200ms das JS "" an die search.php übergibt. Aber warum macht es das? Sicherheitsfeature? Das die Datenbank bzw. das Prepared Statement geschlossen wird, hab ich schon ausschließen können. Den Code dafür rein/raus - brachte nichts.
Grüße
Wuppi
PS: ich hab noch einen "geklauten" code - also das FRONTEND (den PHP-Code dahinter musste ich natürlich mit eigenen ersetzen) - auch hier hab ich kurioserweise das gleiche Problem ... 4200ms -> reload. Die Seite wo ich den geklaut habe, klappt aber ohne Probleme. Die haben sogar 2 Suchergebnisse mit einem AJAX-Suchfeld. Also vielleicht doch irgendwas am Server in Verbindung mit JS, Prepared Statemts etc? Apache/mariaDB in aktueller Version. PHP 8.2. (PHP 8.0 das gleiche)