• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

JavaScript mit MAMP HILFE!!!

Ich denke schon, hab mich aber jetzt eh um css zuerst gekümmert. Aber ein Problem hätte ich noch
Wie kann ich die Anzeigezeit so regulieren das es pro Wort 5 Sekunden sind, egal was ich versuche entweder liegen die Texte dann über einander oder es ist viel zu schnell ?Bildschirmfoto 2022-09-20 um 09.21.04.png
 
Aber so wie ich bisher gelesen habe, bleibt mir nicht viel übrig als diesen Weg um die Aufgabe zu meistern oder nicht ?
Die Ausgabe des Array selbst bekomme ich hin, nur das dieser blöde zeitinterval zwischen jedem Eintrag ist nicht. Bei mir wird es als ganze Zeichenkette ausgegeben
 
Zuletzt bearbeitet:
Ja, Du kannst es so machen und mit der Übergabe an Javascript bist Du schon auf dem richtigen Weg. Meine Empfehlung mit PDO bezieht sich nur auf das Lesen aus der Datenbank. PDO ist da das modernste und IMO am einfachsten zu handhaben.
Oke dankeschön dann versuche ich mich mal weiter,
brauche ich eigentlich eine ausgabe im php teil oder kann das komplett von JS übernommen werden?
 
Zuletzt bearbeitet:
Du bist mir einen Schritt voraus :wink:
Mit fetchAll liegst Du genau richtig, dann hast Du sofort das ganze Ergebnis in einem Array.
Und die Schleife brauchst Du nur zur Kontrolle.
Für Debug-Zwecke kannst Du auch var_dump verwenden.
Bildschirmfoto 2022-09-20 um 16.43.28.png
Aber ein textswitch geschieht trotzdem nicht
EDIT: und der Inspector gibt diesen Fehler zurück
(index):174 Uncaught TypeError: Cannot set properties of null (setting 'innerHTML')
at display2 ((index):174:52)
at (index):179:21
 
Zuletzt bearbeitet:
Also so in der Art weil ohne die Variable gefundenesArray wird es wahrscheinlich nicht funktionieren oder?


Anhang anzeigen 5893
Bitte Code als Code posten, nicht als Bild.

Du musst dir erstmal klar machen wie PHP und Javascript zusammenspielen - ersteres läuft auf dem Server, zweiteres im Browser. Du kannst nicht einfach mitten im PHP-Code Javascript-Code einfügen, der PHP-Code muss gültiges Javascript erzeugen! Schau erstmal dass dein PHP-Code die gewünschten Daten liefert und baue dann den benötigen JS-Code, nicht alles gleichzeitig …

Außerdem sind im Code noch einige Fehler:
  • beim Aufbau der Verbindung fehlt noch ein »;charset=utf8mb4« am Ende des DSN (bei dir die Variable $server) sonst ist nicht definiert wie die Datenbank die Daten liefert, siehe Handbuch
  • verwende niemals »SELECT *«, gibt immer die Spalte(n) an die du brauchst
  • deine Abfrage liefert die Daten in einer zufälligen Reihenfolge, ein ORDER BY wäre evtl. noch sinnvoll
  • wofür die Zeile mit dem echo $zeile['Slogans"]?
  • wenn du nur eine Spalte pro Zeile brauchst ist PDO::FETCH_COLUMN als Parameter von fetchAll() ganz hilfreich (oder eben fetchColumn())
  • prepare() und execute() brauchst du nicht wenn du im Query keine Parameter hast, da reicht query()
 
Bitte Code als Code posten, nicht als Bild.

Du musst dir erstmal klar machen wie PHP und Javascript zusammenspielen - ersteres läuft auf dem Server, zweiteres im Browser. Du kannst nicht einfach mitten im PHP-Code Javascript-Code einfügen, der PHP-Code muss gültiges Javascript erzeugen! Schau erstmal dass dein PHP-Code die gewünschten Daten liefert und baue dann den benötigen JS-Code, nicht alles gleichzeitig …

Außerdem sind im Code noch einige Fehler:
  • beim Aufbau der Verbindung fehlt noch ein »;charset=utf8mb4« am Ende des DSN (bei dir die Variable $server) sonst ist nicht definiert wie die Datenbank die Daten liefert, siehe Handbuch
  • verwende niemals »SELECT *«, gibt immer die Spalte(n) an die du brauchst
  • deine Abfrage liefert die Daten in einer zufälligen Reihenfolge, ein ORDER BY wäre evtl. noch sinnvoll
  • wofür die Zeile mit dem echo $zeile['Slogans"]?
  • wenn du nur eine Spalte pro Zeile brauchst ist PDO::FETCH_COLUMN als Parameter von fetchAll() ganz hilfreich (oder eben fetchColumn())
  • prepare() und execute() brauchst du nicht wenn du im Query keine Parameter hast, da reicht query()
Das Ding ist mein PHP-Code tut ja was er soll. Und ich fange ja nicht mitten im PHP code an sondern ich beende php und lege dann ein script an
Mein Array wird auch Ordnungsgemäß übergeben laut inspector
 
Zuletzt bearbeitet:
Das Ding ist mein PHP-Code tut ja was er soll.
Scheinbar vielleicht. Die genannten Fehler (besonders der mit dem Charset) werden dir erst irgendwann auf die Füße fallen …
Und ich fange ja nicht mitten im PHP code an sondern ich beende php und lege dann ein script an
In dem Bild in #43 ist zu erahnen dass da ein ?> stehen könnte - im Code in #41 ist da aber auf jeden Fall nichts. Deswegen: poste keine Bilder sondern Text!
Mein Array wird auch Ordnungsgemäß übergeben laut inspector
Du hast ein Javascriptproblem für das der PHP-Code irrelevant ist - poste also das was im Browser ankommt. Die Fehlermeldung deutet aber darauf hin dass querySelector das angegebene Element einfach nicht findet … Übrigens: die Variable für das einzelne Element in forEach genauso zu nennen wie das Array mit allen Elementen erhöht die Lesbarkeit von Code nicht wirklich.
 
Uncaught TypeError: Cannot set properties of null (setting 'innerHTML')
at display2 ((index):174:52)
at (index):179:21

Das ist der Fehler den der Browser ausgibt
 
Sorry dann hab ich das etwas falsch verstanden


Hier auf jedenfall meinen code
<div class="container2">
<div class="slogans4">

<?php
//Angeben der Datenbankinformationen
$username = 'KevinRupertus';
$passwort = 'Masken55@';
$server = 'mysql:host=localhost;dbname=bejoynt-dev.de;charset=utf8mb4';
//Verbindungstest durchführen
try {
$verbindung = new PDO($server, $username, $passwort);
}
//Fehlermeldung falls keine Verbindung aufgebaut werden konnte
catch(PDOException $e) {
print $e->getMessage();
}
//SQL-Abfrage anlegen
$sqlBefehl = 'select Slogans from slogans';
//Vorbereiten des SQL-Befehl
$abfrage = $verbindung->prepare($sqlBefehl);
//Starten der Abfrage
$abfrage->execute();

//Speichern aller Treffer in einer Variable
$ergebnismenge = $abfrage->fetchAll();
//starten einer Schleife
foreach($ergebnismenge as $zeile) {

}
?>
<script type="text/javascript">
var ausgabe2 = document.querySelector('#ausgabe2');
var display2 = s2 => ausgabe2.innerHTML = s2;
var gefundenesArray = <?php echo json_encode($ergebnismenge); ?>;

gefundenesArray.forEach((gefundenesArray, i) => {
setTimeout(() => {
display2(gefundenesArray);
}, i * 5000);
});
 
Zurück
Oben