Json

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

  • Json

    Abend,

    Also mein Problem ist eigentlich schnell zu beschreiben...

    Ich gebe mit meinem PHP Script

    PHP-Code:
    echo '{"comments":"test"}'
    aus....

    Mein JS Script empfängt das ganze mit

    Code:
    var translation = eval('(' + http_request.responseText + ')');
    Ich bekomme allerdings beim Format des JSON Strings nen Error im Firefox Debugger....

    Fehler: nicht wohlgeformt
    Quelldatei: http://www.url.de/ajax.php
    Zeile: 1, Spalte: 1
    Quelltext:
    {"comments":"test"}^
    Wie ich durch Google erfahren habe, liegts am Format des Strings. Nachdem ich das Format des JSON Strings dann mit
    http://pear.php.net/pepr/pepr-proposal-show.php?id=198
    getestet habe, kam das gleiche raus. Irgendwie erscheint der Fehler erst jetzt, vorher gabs nie probleme. Funktionieren tut es ja aber immer nen error will ich auch nicht.

    Gruss Sebastian

  • #2
    Re: Json

    Na da ist hinten ja auch so ein ^ dran am String - woher kommt das denn, was hat das da zu suchen?

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      ich denke das packt der Debugger dazu... weil wenn ich meinen inhalt ausgeben mit nem

      Code:
      alert(http_request.responseText);
      bekommt ich den String so raus

      {"comments":"test"}

      Kommentar


      • #4
        ne, der Debugger packt nicht einfach irgendwo was dazu...

        Gibts das irgendwo online zum Ausprobieren?

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          also ich poste mal den code vom testscript von mir

          hier der JS Code...

          PHP-Code:
          <html>

          <
          head>

          <
          script type="text/javascript" language="javascript">

          var 
          http_request;

              function 
          macheRequest() {

                  
          http_request false;

                  if (
          window.XMLHttpRequest) { // Mozilla, Safari,...
                      
          http_request = new XMLHttpRequest();
                      if (
          http_request.overrideMimeType) {
                          
          http_request.overrideMimeType('text/xml');
                          
          // zu dieser Zeile siehe weiter unten
                      
          }
                  } else if (
          window.ActiveXObject) { // IE
                      
          try {
                          
          http_request = new ActiveXObject("Msxml2.XMLHTTP");
                      } catch (
          e) {
                          try {
                              
          http_request = new ActiveXObject("Microsoft.XMLHTTP");
                          } catch (
          e) {}
                      }
                  }

                  if (!
          http_request) {
                      
          alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
                      return 
          false;
                  }

                  return 
          http_request;
                  
              }

              function 
          alertInhalt() {

                  if (
          http_request.readyState == 4) {
                      if (
          http_request.status == 200) {
                          var 
          translation = eval('(' http_request.responseText ')');
                          
          alert(translation.comments);
                      } else {
                          
          alert('Bei dem Request ist ein Problem aufgetreten.');
                      }
                  }

              }


              function 
          testin() {

                  
          http_request macheRequest();
                  
          http_request.onreadystatechange alertInhalt;
                  
          http_request.open('POST''/ajax.php'true);
                  
          http_request.setRequestHeader('Content-Type''application/x-www-form-urlencoded');
                  
          http_request.send('do=testjson');    

              }


          </
          script>

          </
          head>

          <
          body>

          <
          span
              style
          ="cursor: pointer; text-decoration: underline"
              
          onclick="testin()">Einen Request absetzen
          </span>

          </
          body>

          </
          html
          hier die PHP function

          PHP-Code:

          if($_POST['do'] == "testjson") {
              
              echo 
          '{"comments":"test"}';
              

          Kommentar


          • #6
            Ja... stell das auch bitte irgendwo online, sodass wir beide das gleiche Skript ausprobieren können.

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              ok hab ich gemacht... ich hab herausgefunden, dass wenn ich irgendwelche tags drum mache kein Fehler mehr ausgegeben wird... ohjee :-)

              hier die zwei Varianten (der erste mit error und der zweite ohne)

              test1
              test2

              kann ja tags drum machen und diese rausfiltern, aber das doch gefuscht von vorne bis hinten

              danke schonmal

              Gruss Sebastian
              Zuletzt geändert von Sebastian.J; 28.07.2007, 15:07.

              Kommentar


              • #8
                hm... kommentier das hier mal aus
                Code:
                if (http_request.overrideMimeType) {
                                http_request.overrideMimeType('text/xml');
                                // zu dieser Zeile siehe weiter unten
                            }

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  ah danke jetzt klappts... hatte es damals schon auskommentiert aber nachdem ich probs mit IE und Firefox bekam hatte ich den Ajaxcode nochmal von der mozillaseite 1:1 kopiert...

                  großes dankeschön

                  Kommentar

                  Lädt...
                  X