Ankündigung

Einklappen
Keine Ankündigung bisher.

JSON Problem

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JSON Problem

    Hallo Leute,

    Gleich mal vorweg: Ich bin eine NULL in Javascript, und allem was dazu gehört.

    Jetzt mein Problem. Ich habe ein bisschen in meinem schlauen Buch gelesen, und heraus gefunden, dass man mit JSON einen PHP Script aufrufen kann, ohne die Seite neu zu laden. Und genau das ist es was ich brauche.

    Ich möchte das der JSON Script sagen wir alle 2 Sekunden (Oder einfach so in einer Schleife) eine Abfrage an meinen PHP Scipt sendet. Der PHP Script läd die aktuellsten Daten aus der Datenbank, und schickt sie an die ursprüngliche Seite zurück. Jedoch OHNE sie neu zu laden. Das ist wichtig, da der User paralell etwas in ein Textfeld eingeben soll. Bei einem PageReload wär das ja wieder weg.

    Kann mir jemand ein bisschen auf die Sprünge helfen was oder wie man das machen kann?

    Die normale JSON Abfrage bekomm ich vielleicht mit meinem Buch hin, aber wie mache ich das das er das ununterbrochen macht....

    Danke schonmal für eure Hilfe.

    EDIT:
    Also die JSON Abgrage würde ich irgendwie so machen:
    Code:
    function chronik() {
    if (xmlHttp.readyState == 4) {
      var data = eval('(' + xmlHttp.responseText + ')');
      var chat = daten.chronik;
      document.getElementById('chatbox').innerHTML = '<br />' + info + '<br />';  
      }
    In PHP setze ich dann natürlich den JSON Array mit dem Inhalt.

    Würde das so funktionieren?
    Wenn ja: Wie muss ich weiter vorgehen.
    Wenn Nein: Warum ?

  • #2
    Hallo,

    JSON ist kein Script und wird für dich auch keine PHP Datei aufrufen, es ist nur ein Datenformat. Das was du eigentlich suchst ist AJAX. Dazu gibt es aber überall Beispiele, wie du dein Problem lösen kannst - auch in der Boardsuche

    Kommentar


    • #3
      Zitat von jGeee Beitrag anzeigen
      Hallo,

      JSON ist kein Script und wird für dich auch keine PHP Datei aufrufen, es ist nur ein Datenformat. Das was du eigentlich suchst ist AJAX. Dazu gibt es aber überall Beispiele, wie du dein Problem lösen kannst - auch in der Boardsuche
      Ja das das AJAX ist weiß ich, aber kannst du mir bitte eher ein paar Stichwörter geben nach denen ich suchen sollte um eine Lösung zu finden ?

      Über AJAX gibt es endlos viel.

      Kommentar


      • #4
        Hey, ich habe jetzt bisschen gelesen und habe jetzt so weit einen Code der - was mich nicht wundert - nicht funktioniert.

        Kann mir jemand erklären was mein Fehler ist. Wie gesagt ich bin ein richtiger Anfänger in diesem Bereich.

        datei.php
        PHP-Code:
        <?php
        // Verbindung zur Datenbank
        // Abfrage aus der Datenbank

        while($row mysqli_fetch_array($values)){
        $chat .= '<b>'.$row[name].'</b>'.date("H:i:s"$row[time]).'<br/>';
        }
        print(
        json_encode($chat));
        ?>
        index.php
        Code:
        <script type="text/javascript" language="JavaScript">
        <!--
        var xmlHttp = null;
        try {
            // Mozilla, Opera, Safari sowie Internet Explorer (ab v7)
            xmlHttp = new XMLHttpRequest();
        } catch(e) {
            try {
                // MS Internet Explorer (ab v6)
                xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e) {
                try {
                    // MS Internet Explorer (ab v5)
                    xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
                } catch(e) {
                    xmlHttp  = null;
                }
            }
        }
        xmlHttp.open('GET', 'datei.php',true)
        xmlHttp.onreadystagechange = chat();
        xmlHttp.send(null);
        
        function chat() {
        if (xmlHttp.readyState == 4) {
          var data = eval('(' + xmlHttp.responseText + ')');
          document.getElementById('chatbox').innerHTML = '<br />' + data + '<br/>';  
          }
        -->
        </script>
        </head>
        <body onload="chat();return: false;">
        <div id="chatbox"></div>
        ...
        Sorry falls es übertrieben viele Fehler enthält
        Ich übe !

        Kommentar


        • #5
          kleiner tipp:
          benutze das js-framework jQuery, und dessen $.getJSON() Funktion.

          Kommentar


          • #6
            json_encode erwartet dazu noch ein array und keinen string! also einfach vor der Schleife ein array initialisieren und dann in der Schleife die row zupushen. (sorry für das häßliche denglisch)
            I like cooking my family and my pets.
            Use commas. Don't be a psycho.
            [URL="http://jscouch.de"]Blog[/URL] - [URL="http://coverflowjs.github.io/coverflow/"]CoverflowJS[/URL]

            Kommentar


            • #7
              Zitat von Screeze Beitrag anzeigen
              kleiner tipp:
              benutze das js-framework jQuery, und dessen $.getJSON() Funktion.
              Sorry in Google finde ich da nichts. JQuery sagt mir zwar was, aber ich weiß nicht wie man es anwenden kann.

              json_encode erwartet dazu noch ein array und keinen string! also einfach vor der Schleife ein array initialisieren und dann in der Schleife die row zupushen. (sorry für das häßliche denglisch)
              Das häßliche Denglisch war sogar so häßlich das ich es nicht verstanden habe, aber ich mache mal ein Array drauß.

              Kommentar


              • #8
                Zitat von Dopar Beitrag anzeigen
                Sorry in Google finde ich da nichts. JQuery sagt mir zwar was, aber ich weiß nicht wie man es anwenden kann.



                Das häßliche Denglisch war sogar so häßlich das ich es nicht verstanden habe, aber ich mache mal ein Array drauß.

                EDIT:

                Wenn ich den PHP Code aufrufe kommt das:

                {"chronik":"Dopar<\/b> 20:06:42<br \/>
                "}
                Das sieht glaube ich schon ganz gut aus. Das heißt mir fehlt ja nur noch das das auch in der eigentllichen INDEX angezeigt wird.

                Kommentar


                • #9
                  Sorry in Google finde ich da nichts. JQuery sagt mir zwar was, aber ich weiß nicht wie man es anwenden kann.
                  Das istn witz oder??

                  der 1. treffer in google!!! dokumentation inclusive beispiele, jetz zeig mal eigeninitiative

                  Let me google that for you

                  Kommentar


                  • #10
                    Zitat von Screeze Beitrag anzeigen
                    Das istn witz oder??

                    der 1. treffer in google!!! dokumentation inclusive beispiele, jetz zeig mal eigeninitiative

                    Let me google that for you
                    Nein. Aber mir war nicht klar nach was ich genau suchen muss.

                    Trozdem danke.

                    Kommentar


                    • #11
                      Nein. Aber mir war nicht klar nach was ich genau suchen muss.
                      Faule ausrede:
                      Du schaffst es nicht dieses hier:
                      benutze das js-framework jQuery, und dessen $.getJSON() Funktion.
                      in folgende 2 stichwörter zu zerkleinern
                      Code:
                      jQuery getJSON
                      ???

                      Kommentar


                      • #12
                        Wenn ich schon chatbox lesen, kann ich nur sagen: Du bis noch nicht so weit. Und sorry, mit ein bisschen Zusammenkopieren funktioniert das hier nicht.

                        [MOD: Thread geschlossen]
                        [COLOR="#F5F5FF"]--[/COLOR]
                        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                        [COLOR="#F5F5FF"]
                        --[/COLOR]

                        Kommentar

                        Lädt...
                        X