Ankündigung

Einklappen
Keine Ankündigung bisher.

Php Variable in einen Javascript Array einfügen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Wie sieht denn überhaupt der Inhalt deiner Datenbank aus? Hast Du dort nur einen oder mehrere Datensätze? Und was steht dort drin?
    Am besten mal die Ausgabe von diesem Code posten:
    Code:
    if ($result = $conn->query($sql)) {
        while ($row = $result->fetch_row()) {
            var_dump($row);
        }
        $result->close();
    }

    Kommentar


    • #17
      Ausgabe:
      Code:
      array(4) { [0]=> string(1) "1" [1]=> string(1691) "
      
        2020: {
      
             11: {
      
                 4: [
      
                     {
      
                         startTime: "10:00",
      
                         endTime: "12:00",
      
                         text: "Hey"
      
                     }
      
                 ]
      
             },
      
             12: {
      
                 25: [
      
                     {
      
                         startTime: "00:00",
      
                         endTime: "24:00",
      
                         text: "Christmas Day"
      
                     }
      
                 ],
      
                 26: [
      
                     {
      
                         startTime: "00:00",
      
                         endTime: "21:00",
      
                         text: "Day 2"
      
                     }
      
                 ]
      
             }
      
      " [2]=> string(10) "2020-12-14" [3]=> string(10) "2020-12-14" }
      Die Datenbank beinhaltet nur einen Eintrag.

      Kommentar


      • #18
        Ich denke, jetzt verstehe ich. Das ist ja ein merkwürdiger Datenbankeintrag.
        PHP:
        Code:
        <?php $sql = "SELECT text FROM events";
        $erg = $conn->query($sql);
        if ($erg) {
            /* fetch object array */
            $row = $erg->fetch_row();
            $text = $row[1];
            $text_temp = strip_tags($text);
            $text = str_replace("&nbsp;", '', $text_temp);
            /* free result set */
            $result->close();
        }
         ?>
        Javascript:
        Code:
        const data = '<?php echo $text; ?>';
        Zuletzt geändert von Sempervivum; 16.12.2020, 18:03.

        Kommentar


        • #19
          PS: Ich habe jetzt noch ein paar Mal editiert, um Fehler zu beheben. Lade mal neu.

          Kommentar


          • #20
            Gibt einfach nur Empty String aus, und wenn ich es 1:1 Kopiere gibt es nur den Fehler: "Uncaught Error: Call to a member function close() on bool"
            Zuletzt geändert von Nightland Driver; 16.12.2020, 18:24.

            Kommentar


            • #21
              Poste doch Mal einen SQL-Dump dieser Tabelle.

              Kommentar


              • #22
                Da ich die Datei hier nicht hochladen kann und auch nicht ordentlich in form von Text hier einfügen kann, habe ich dir das ganze hier Hochgeladen: https://pastebin.com/s5KULpb7

                Falls das etwas hilft, die Datenbank sollte eigentlich nicht so schlimm aussehen, es war geplant jedes Event als einzelnen Wert einzutragen, Beispiel: https://pastebin.com/LcsGv1Uf
                Leider bin ich auf keine gute Lösung gekommen dass ganze dann in einem einigermaßen guten Code auszugeben.
                Solltet ihr also eine Idee haben wie ich das mit der anderen DB Struktur besser lösen kann, dann lasst es mich wissen.
                Zuletzt geändert von Nightland Driver; 17.12.2020, 11:49.

                Kommentar


                • #23
                  OK, der SQL-Dump hilft auf jeden Fall schon Mal ein Stück weiter. Ich habe jetzt eine Testdatei gebaut und die sieht so aus:
                  Code:
                  <?php
                  $sql = "SELECT text FROM events";
                  $erg = $conn->query($sql);
                  echo mysqli_error($db_con);
                  if ($erg) {
                      /* fetch object array */
                      $row = $erg->fetch_row();
                      $text = $row[0];
                      $text = strip_tags($text);
                      $text = str_replace("&nbsp;", '', $text);
                  }
                  var_dump($text);
                  ?>
                  <script>
                      const data = '{<?php echo $text; ?>}';
                      console.log(data);
                      console.log(JSON.parse(data));
                  </script>
                  Dort steht jetzt zumindest der Text in der Variablen data so, wie Du früher geschrieben hast, dass Du es erwartest. Ich habe dazu einfach die geschweiften Klammern hinzu gefügt. Das Ergebnis ist jedoch kein valides JSON weil ein numerischer Wert als Schlüssel nicht zulässig ist.
                  Um zu beurteilen, ob man die Datenbank verbessern kann, müsste man mehr über diesen Kalender wissen. Hast Du den selbst gebaut oder ist es etwas vorgefertigtes?

                  Kommentar


                  • #24
                    Nein den habe ich nicht selber gemacht.
                    Da habe ich einen gefunden der gut gepasst hat.
                    Ich denke es ist ok wenn ich den Link zum GitHub sende: https://github.com/nizarmah/calendar-javascript-lib

                    Kommentar


                    • #25
                      Ja, Link zu Github ist OK.
                      Das macht das Ganze jetzt wieder ein Stück klarer.
                      Und ich muss ein wenig zurück rudern: In Javascript kann ein Schlüssel schon numerisch sein.
                      Dein Eintrag in der Datenbank ist leider ein wenig fehlerhaft, da fehlte eine geschweifte Klammer. Wo hattest Du diesen String denn her?
                      Und jetzt ist mir auch klar, wie man den Eintrag in der Datenbank verbessern kann oder auch muss: Der String, den Du da hast, enthält die Events für den ganzen Kalender bzw. mehrereJahre. Wieviele Zeichen willst du jetzt in der Datenbank vorsehen?
                      Für die Datenbank geeignet wäre es, für jedes Event einen Datensatz mit dem Datum als DATE vorzusehen und dann nach dem Auslesen in das Format zu konvertieren, das der Kalender braucht.

                      Kommentar


                      • #26
                        Zitat von Sempervivum Beitrag anzeigen
                        Wo hattest Du diesen String denn her?
                        Der String ist einfach der Inhalt vom Array den ich zum testen im Quellcode selbst geschrieben hab einfach rauskopiert und über meinen Editor im Backend in die Datenbank eingetragen.

                        Zitat von Sempervivum Beitrag anzeigen
                        Wieviele Zeichen willst du jetzt in der Datenbank vorsehen?
                        Ich hatte ja uhrsprünglich geplant für jedes Event einen eigenen Eintrag vorzunhemen wie in dieser Tabelle: https://pastebin.com/LcsGv1Uf.
                        Das wäre für die spätere Einbindung ins Backend für die Moderatoren am Einfachsten zu benutzen.

                        Kommentar


                        • #27
                          Genau, das bei pastebin sieht schon wesentlich besser aus und ist besser geeignet für eine Datenbank. Versuche, es in das Format für den Kalender zu konvertieren und melde dich, wenn Du nicht zum Ziel kommst.

                          Kommentar


                          • #28
                            Zitat von Sempervivum Beitrag anzeigen
                            Genau, das bei pastebin sieht schon wesentlich besser aus und ist besser geeignet für eine Datenbank. Versuche, es in das Format für den Kalender zu konvertieren und melde dich, wenn Du nicht zum Ziel kommst.
                            Aus dem Grund, dass ich das nicht ordentlich formatiert bekommen hab, habe ich das versucht auf die andere Art zu machen was aber auch nicht funktioniert hat.

                            Kommentar


                            • #29
                              Das ist kein Hexenwerk:
                              Code:
                              $sql = "SELECT * FROM event_calendar";
                              $erg = $conn->query($sql);
                              echo mysqli_error($db_con);
                              $events = [];
                              if ($erg) {
                                  /* fetch object array */
                                  while ($row = mysqli_fetch_assoc($erg)) {
                                      $datearr = explode('-', $row['event_date']);
                                      $year = $datearr[0];
                                      $month = $datearr[1];
                                      $day = $datearr[2];
                                      if (!isset($events[$year])) {
                                          $events[$year] = [];
                                      }
                                      if (!isset($events[$year][$month])) {
                                          $events[$year][$month] = [];
                                      }
                                      if (!isset($events[$year][$month][$day])) {
                                          $events[$year][$month][$day] = [];
                                      }
                                      $events[$year][$month][$day] = [
                                          'startTime' => $row['start_time'],
                                          'endTime' => $row['end_time'],
                                      ];
                                  }
                              }
                              var_dump($events);
                              ?>
                              <script>
                                  const data = <?php echo json_encode($events); ?>;
                                  console.log(data);
                              </script>

                              Kommentar


                              • #30
                                PS: Wie ich sehe, war ich da etwas übergenau: Man muss nicht abfragen, ob das Array schon existiert, es funktioniert ohne das genau so:
                                Code:
                                $sql = "SELECT * FROM event_calendar";
                                $erg = $conn->query($sql);
                                echo mysqli_error($db_con);
                                $events = [];
                                if ($erg) {
                                    /* fetch object array */
                                    while ($row = mysqli_fetch_assoc($erg)) {
                                        $datearr = explode('-', $row['event_date']);
                                        $year = $datearr[0];
                                        $month = $datearr[1];
                                        $day = $datearr[2];
                                        // if (!isset($events[$year])) {
                                        //     $events[$year] = [];
                                        // }
                                        // if (!isset($events[$year][$month])) {
                                        //     $events[$year][$month] = [];
                                        // }
                                        // if (!isset($events[$year][$month][$day])) {
                                        //     $events[$year][$month][$day] = [];
                                        // }
                                        $events[$year][$month][$day] = [
                                            'startTime' => $row['start_time'],
                                            'endTime' => $row['end_time'],
                                        ];
                                    }
                                }

                                Kommentar

                                homepage-forum.de - Hilfe für Webmaster! Statistiken

                                Einklappen

                                Themen: 56.839   Beiträge: 430.423   Mitglieder: 28.593   Aktive Mitglieder: 54
                                Willkommen an unser neuestes Mitglied, digital-mc.

                                Online-Benutzer

                                Einklappen

                                202 Benutzer sind jetzt online. Registrierte Benutzer: 4, Gäste: 198.

                                Mit 3.502 Benutzern waren am 23.01.2020 um 17:20 die meisten Benutzer gleichzeitig online.

                                Die neuesten Themen

                                Einklappen

                                • arnego2
                                  Antwort auf Besucher-Explosion am 10.4.2021
                                  Hi Karl
                                  Bei Google brauchst du gar nicht erst nachzuhaken, schau in die Serverstats da findest du die Rohdaten.
                                  Google geht den Weg der Kirche und hält uns für doof....
                                  Heute, 23:02
                                • Nightland Driver
                                  Antwort auf Upload Script gibt Undefined array key "file" zurück
                                  Vielen Dank für deine Antwort, da liegt der fehler nicht. Wie oben zu erkennen ist, ist der name des inputs welcher den File enthält "file".
                                  PHP-Code:
                                  <?php echo '<input onchange="$(submit_profileimage).click();" name="file" type="file" class="custom-file-input
                                  ...
                                  Heute, 21:01
                                • Megabyte
                                  Antwort auf Hompage erstellen lassen?
                                  Mein Fazit:

                                  CMS wäre hier totaler Unsinn. CMS = ContentManagementSystem. Hier muss kein Content 'gemanagt' werden. Weder Firmenname, noch Anschrift oder angebotene Leistungen müssen hier intervalartig redaktionell bearbeitet werden.

                                  Baukasten... B-Lösung. Ich kenne 'Wix'...
                                  Heute, 20:46
                                • Megabyte
                                  Antwort auf Upload Script gibt Undefined array key "file" zurück
                                  Wenn ich es richtig gelesen habe wird hier das Wort 'file' das erste Mal als 'key' verwendet:
                                  $lastDot = strrpos($_FILES["file"]["name"], ".");

                                  Es soll hier also die letzte Position ermittelt werden wo ein '.' steht inhalb der Variablen (Array) $_FILES["file"]["name"]...
                                  Heute, 20:26
                                • speedy1
                                  Antwort auf Hompage erstellen lassen?
                                  AW: Homepage erstellen lassen?

                                  Ich habe mit dem Website-Builder Wix gute Erfahrungen gemacht, welcher auch ein gutes Preis-Leistungs-Verhältnis besitzt.

                                  Die Vorteile:
                                  - Einfach zu bedienender Editor, mit einem Seitenmenü zum Hinzufügen von Bildern und Anwendungen...
                                  Heute, 20:23

                                Die neuesten Beiträge

                                Einklappen

                                • admin
                                  Besucher-Explosion am 10.4.2021
                                  Hallo,

                                  wir hatten am 10.4.2021 eine extrem hohe Zahl an Besuchern hier im Homepage-Forum - hier ein Screenshot von Google Analytics:



                                  6.4.2021: 346 Seitenaufrufe
                                  7.4.2021: 302 Seitenaufrufe
                                  8.4.2021: 289 Seitenaufrufe
                                  9.4.2021: 312 Seitenaufrufe...
                                  12.04.2021, 17:18
                                • arnego2
                                  Antwort auf Besucher-Explosion am 10.4.2021
                                  Hi Karl
                                  Bei Google brauchst du gar nicht erst nachzuhaken, schau in die Serverstats da findest du die Rohdaten.
                                  Google geht den Weg der Kirche und hält uns für doof....
                                  Heute, 23:02
                                • Nightland Driver
                                  Upload Script gibt Undefined array key "file" zurück
                                  Hey,

                                  ich habe mit meinem Upload Script ein kleines Problem, es gibt mir nurnoch

                                  Warning: Undefined array key "file" in E:\Benutzer\Documents\Xampp\htdocs\Projekt\Homepag e\includes\user.inc.php on line 20
                                  Warning: Trying to access array offset on value of type...
                                  Heute, 17:44
                                • Nightland Driver
                                  Antwort auf Upload Script gibt Undefined array key "file" zurück
                                  Vielen Dank für deine Antwort, da liegt der fehler nicht. Wie oben zu erkennen ist, ist der name des inputs welcher den File enthält "file".
                                  PHP-Code:
                                  <?php echo '<input onchange="$(submit_profileimage).click();" name="file" type="file" class="custom-file-input
                                  ...
                                  Heute, 21:01
                                • Megabyte
                                  Antwort auf Hompage erstellen lassen?
                                  Mein Fazit:

                                  CMS wäre hier totaler Unsinn. CMS = ContentManagementSystem. Hier muss kein Content 'gemanagt' werden. Weder Firmenname, noch Anschrift oder angebotene Leistungen müssen hier intervalartig redaktionell bearbeitet werden.

                                  Baukasten... B-Lösung. Ich kenne 'Wix'...
                                  Heute, 20:46
                                • Megabyte
                                  Antwort auf Upload Script gibt Undefined array key "file" zurück
                                  Wenn ich es richtig gelesen habe wird hier das Wort 'file' das erste Mal als 'key' verwendet:
                                  $lastDot = strrpos($_FILES["file"]["name"], ".");

                                  Es soll hier also die letzte Position ermittelt werden wo ein '.' steht inhalb der Variablen (Array) $_FILES["file"]["name"]...
                                  Heute, 20:26
                                • speedy1
                                  Antwort auf Hompage erstellen lassen?
                                  AW: Homepage erstellen lassen?

                                  Ich habe mit dem Website-Builder Wix gute Erfahrungen gemacht, welcher auch ein gutes Preis-Leistungs-Verhältnis besitzt.

                                  Die Vorteile:
                                  - Einfach zu bedienender Editor, mit einem Seitenmenü zum Hinzufügen von Bildern und Anwendungen...
                                  Heute, 20:23
                                • ST747
                                  impfen oder schrott
                                  A

                                  nachdem wegen astraZ. das impfen ausgesetzt wurde, wird das jetzt wieder fortgesetzt. aber der grund ist, den impfstoff kann man leicher in den arztpraxen an "den mann" bringen.
                                  nur so etwas zu empfehlen, weil man das besser in der praxis bewältigen kann, ist schlecht....
                                  20.03.2021, 12:15
                                • ST747
                                  Antwort auf impfen oder schrott
                                  hallo,

                                  zwei hinweise:

                                  1. Ärzte empfehlen selbst die Hintergrundimmuniät zu stärken:

                                  .... wichtig zum Schutz vor dem schweren Verlauf einer Infektion ist auch die "Hintgergrundimmunität". Dazu zählen z.B. eine ausreichend gute Vit D- Versorgung, Selen,
                                  ...
                                  GlaxoSmithKline plc (LSE/NYSE: GSK) und CureVac N.V. (Nasdaq: CVAC) veröffentlichen heute eine neue Kooperation über 150 Millionen Euro, die auf ihrer bestehenden Zusammenarbeit aufbaut. Ziel der Kooperation ist die Entwicklung von mRNA-Impfstoffen der nächsten Generation, die das Potential eines multivalenten Ansatzes gegen potenziell aufkommenden Virusvarianten in einem Impfstoff mit sich bringt.
                                  Heute, 14:47
                                • ST747
                                  Antwort auf Besucher-Explosion am 10.4.2021
                                  hallo admin,
                                  ich bin bei alfahosting. da gibt es eine gute funktion.
                                  man kann sich die umfangreiche serverstatistik anschauen.
                                  da sieht man auch z.b. die bots.
                                  gerhard...
                                  Heute, 13:38
                                Lädt...
                                X