Ankündigung

Einklappen
Keine Ankündigung bisher.

Mysql abfrage in neuem Fenster durchführen und Ergebnisstring wieder zurückgeben an ö

Einklappen

Neue Werbung 2019

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

  • #16
    Zitat von trottel100 Beitrag anzeigen
    Hallo,

    bevor ich einen anderen Weg nutze die Frage, warum funktioniert der folgende Befehl nicht?

    PHP-Code:
     var dataphp = " <?php echo json_encode$annos ); ?>" ; 
     alert (dataphp);
    das erkenne ich daran, das der alert befehl nicht ausgeführt wird.
    Zuerstmal:

    Es ist wichtig das Du Dir auch den erzeugten HTML (+JS) Quelltext anschaust und entstehende JS Fehler mitbekommst.

    Anschauen geht in jeden mir bvekannten Webbrowser ohne irgendwelche Addons (meist mit [Strg]+[U])

    JavaScript fehler kannst Du auch mit den jeweiligen Browsereigenen Fehlerkonsolen ermitteln. Aber hier haben nicht alle Browser von Haus aus welche und die die welche haben sind meist nicht wirklich zufriedenstellend bestückt. (Einfachmal im Browser [F12] drücken)

    FireBug hat sich als sehr brauchbares AddOn für Firefox und Chrome erwiesen. Damit kann man Webanwendungen wunderbar debugen.

    So, nun zum Problem: Vergleiche doch mal Deinen Code mit dem den ich Dir gepostet habe:

    Deine Variante:

    PHP-Code:
    var dataphp = " <?php echo json_encode$annos ); ?>" ;
    meine Variante:

    PHP-Code:
    var dataphp = <?php echo json_encode$annos ); ?>;
    Ich hoffe Du entdeckst Deinen Fehler!

    Gruß, Ulf
    PHP-Manual ¡ mysql_* ist veraltet ¡ Debugging: Finde DEINE Fehler selbst ¡ Passwort-Hashing ¡ Prepared Statements

    Kommentar


    • #17
      Hallo,

      ja der Fehler war sehr blöde.

      Trotzdem klappt es nicht wenn ich die Ausgabe als variable nutze, warum weiss ich nicht, ist sehr komisch.
      Das hängt an dem Befehl von dygraph, wenn ich eine Ausgabe mache sieht es genauso aus wie der php string.??

      Wenn das klappt kann ich versuchen mich an Ajax ranzuwagen.

      Kommentar


      • #18
        Zitat von trottel100 Beitrag anzeigen
        ja der Fehler war sehr blöde.

        Trotzdem klappt es nicht wenn ich die Ausgabe als variable nutze, warum weiss ich nicht, ist sehr komisch.
        Das hängt an dem Befehl von dygraph, wenn ich eine Ausgabe mache sieht es genauso aus wie der php string.??

        Wenn das klappt kann ich versuchen mich an Ajax ranzuwagen.
        Hör doch mal auf rumzuraten. Das Problem scheint bei Dir wohl zu sein das Du nicht beherzigst was andere und ich Dir erzählen.

        Wir machen es mal anders: Hier ein paar minimale Beispieldateien die Dir als Basis dienen können und alles beinhalten was Du brauchst.

        Wie auch immer das bei Dir aussieht. Zur Demonstration hat dieses folgende Funktionalität:

        1. Wenn die Datei fertig geladen ist wird das Popupfenster nach /popup.html geöffnet.
        2. Wenn das Popup aufgerufen wurde werden erst die Daten mit PHP zusammengstellt (also das was bei Dir aus der DB kommt)
        3. Dann wird das HTML ausgegeben und der PHP seitige Wert wird dabei JSON kodierte in den JS teil geschrieben
        4. Dann ist eine Interaktion von Dir im Browser nötig und dem Popup zu sagen das es nun wieder geschlossen werden kann
        5. Also auf den Link im Popup klicken
        6. Das ruft die Funktion callMainFunction() auf welche über window.opener die Daten an das Haupfenster zurück schickt
        7. mainWindowDunction(…) im Hauptfenster schließt das Popup und setzt die übermittelten Daten in einem DIV element.

        Als Erstes eine HTML-Datei die das Hauptfenster darstellt.

        Code:
        <!DOCTYPE html>
        <html>
           <head>
              <title>Main window</title>
              <meta charset="UTF-8">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <script type="text/javascript" src="/public/js/jquery/2.1.1/jquery.min.js"></script>
              <script type="text/javascript">
                 var popupWindow = null;
                 function mainWindowFunction( data )
                 {
                    if ( popupWindow !== null )
                    {
                       popupWindow.close();
                       popupWindow = null;
                    }
                    $( '#DataBox' ).text( data );
                 }
                 $( document ).ready(
                    function()
                    {
        
                       // Aller code in dem Block wird ausgeführt wenn das Dokument fertig vom Browser geladen wurde.
        
                       // Popup fenster öffnen und fenster-Instanz merken
                       popupWindow = window.open( './popup.php', 'popup', 'height=300,width=400' );
                    }
                 );
              </script>
           </head>
           <body>
              <div>
                 <h1>Main window</h1>
                 <p id="DataBox"></p>
              </div>
           </body>
        </html>
        und noch die popup.php Datei

        PHP-Code:
        <?php
        // Hier die Daten aus der DB zusammen setzen
        $daten 'Beispieldaten aus der DB';
        header'Content-Type: text/html; charset=utf-8' );
        ?><!DOCTYPE html>
        <html>
           <head>
              <title>Popup</title>
              <meta charset="UTF-8">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <script type="text/javascript" src="/public/js/jquery/2.1.1/jquery.min.js"></script>
              <script type="text/javascript">
                 function callMainFunction()
                 {
                    window.opener.mainWindowFunction( <?= json_encode$daten ); ?> );
                 }
                 $( document ).ready(
                    function()
                    {
                       $( '#DoneLink' ).on(
                          'click',
                          function()
                          {
                             callMainFunction();
                          }
                       );
                    }
                 );
              </script>
           </head>
           <body>
              <p>
                 <a id="DoneLink" href="#">Hier klicken um Daten ans Hauptfenster zu schicken</a>
              </p>
           </body>
        </html>
        Was du tun must ist lediglich den Pfad zu JQuery anpassen (und natürlich jquery besorgen falls noch nicht vorhanden (http://jquery.com/download/))

        So wie es ist läuft es fehlerfrei hier.

        Gruß, Ulf
        PHP-Manual ¡ mysql_* ist veraltet ¡ Debugging: Finde DEINE Fehler selbst ¡ Passwort-Hashing ¡ Prepared Statements

        Kommentar


        • #19
          Wieso "versteift" ihr euch auf dieses PopUp-Fenster, welches Daten zurückgeben soll?

          Ajax ist doch schon mehrfach erwähnt worden. Ein Beispiel: Personensuche in einer Tabelle.

          Ein Formular mit einer Textbox zur Eingabe.

          PHP-Code:
          <!DOCTYPE HTML>
          <
          html>
          <
          head>
          <
          title>SQL-Suche mit Ajax</title>
          </
          head>
          <
          script type="text/javascript">
          <!--
          function 
          sql(){
           var 
          suchwort document.getElementById("input").value;
           if (
          window.XMLHttpRequest){
            
          myAjax = new XMLHttpRequest();
           }else{
                 
          myAjax = new ActiveXObject("Microsoft.XMLHTTP");
                     }
           
          myAjax.onreadystatechange=function(){
            if (
          myAjax.readyState==&& myAjax.status==200){
             
          /*
               * Ergebnis im DIV (s. unten) ausgeben  . . .
               */
               
          document.getElementById("output").innerHTML myAjax.responseText;
              }
           };
           
          myAjax.open("GET","a_1personensuche.php?term=" suchwort,true);
           
          myAjax.send();
          }
          // -->
          </script>
          <body>
          <h3>Personensuche</h3>
          <p>Suchwort&nbsp;<input type="text" id="input"></p>
          <p><input type="button" value="Suchen" onclick = "sql()"></p>
          <div id="output"></div>
          </body>
          </html> 
          Nach Klick auf dem Button wird die PHP-Datei "a_1personensuche.php" mit dem Parameter "term" ausgeführt.
          Das Script sucht nun in der Tabelle nach Personen, deren Nachname mit den in "term" enthaltenen Buchstaben anfängt.

          Das Ergebnis kann z.B. in einer Tabelle oder in einem oder mehreren Strings ausgegeben werden. Die Ausgabe in der "Hauptseite"
          in dem "DIV" erfolgt durch die Anweisung "document.getElementById("output").innerHTML = myAjax.responseText;" (s. oben)

          PHP-Code:
          <?php
          /*
          * Nach Änderungen hier muß/müssen die(se) Datei(en) im Browsercache gelöscht werden
          */
          $conn = new PDO("mysql:host=localhost;dbname=test""guenni""guenni");
          $query "select Vorname, Nachname from tabelle2 where Nachname like '".$_REQUEST['term']."%' order by Nachname";
          $stmt $conn->prepare($query);
          $ok $stmt->execute();
          if(
          $ok === false){
           
          print_r($stmt->errorInfo());
          }else{
                       
          /*
                      * Tabelle zurückgeben
                      */
                      
          echo '<table border="1">';
                      while(
          $result $stmt->fetch(PDO::FETCH_ASSOC)){
                       echo 
          '<tr><td>';
                       echo 
          implode('<td>'$result);
                       echo 
          '</tr>';
                      }
                      echo 
          '</table>';
                      
                      
          /*
                      * String zurückgeben
                      
                      while($result = $stmt->fetch(PDO::FETCH_ASSOC)){
                       echo implode(' - ', $result).'<br>';
                      }
                      */
                   
          }
          ?>
          Will ich keine Ausgabe, sondern z.B. einen String weiterverarbeiten, so kann man das Ergebnis auch in einer Variablen speichern.

          Script aus der Hauptseite (Änderungen):

          PHP-Code:
          <script type="text/javascript">
          <!--
          /*
          * Variable deklarieren
          */
          var results '';
          function 
          sql(){
           var 
          suchwort document.getElementById("input").value;
           if (
          window.XMLHttpRequest){
            
          myAjax = new XMLHttpRequest();
           }else{
                 
          myAjax = new ActiveXObject("Microsoft.XMLHTTP");
                     }
           
          myAjax.onreadystatechange=function(){
            if (
          myAjax.readyState==&& myAjax.status==200){
             
          /*
               * Ergebnis im DIV (s. unten) ausgeben  . . .
               */
               // . . . oder auch nicht document.getElementById("output").innerHTML = myAjax.responseText;
              
          }
           };
           
          myAjax.open("GET","a_1personensuche.php?term=" suchwort,true);
           
          myAjax.send();
          /*
          * Rückgabe in Variable speichern
          */
          results myAjax.responseText;
          /*
          * Weiterverarbeiten oder an eine Funktion übergeben
          * meine_neue_Funktion(results);
          */
          }
          // -->
          </script> 
          Gruß
          Günni

          Kommentar


          • #20
            Hallo,

            danke für die Infos, ich kann ja die Daten übertragen. leider kann ich mit den Daten nichts anfangen.

            Hier ein Beispiel.
            Wenn ich die Annotations mit folgendem Befehl anzeige , klappt alles. (alles ist JAvascript)

            PHP-Code:
             graphdiv2.setAnnotations([{series'AKKU [V]'xDate.parse('2014/07/06 12:58:12'), shortText'A'text'Akku geladen'}]); 

            wenn ich
            PHP-Code:
            var dat "[{series: 'AKKU [V]', x: Date.parse('2014/07/06 12:58:12'), shortText: 'A', text: 'Akku geladen'}]"
                 
               

               
            graphdiv2.setAnnotations(dat);          // Annotations anzeigen 


            was ist falsch?

            klappen tut auch

            PHP-Code:
            graphdiv2.setAnnotations([<?php echo $aaa ?>]);
            $aaa hat denselben Inhalt wie oben der Javascriptstring

            Kommentar


            • #21
              Hallo,

              hat hier keiner eine Lösung?

              Kommentar


              • #22
                Mache ich hier einen Denkfehler?

                Oder liegt das an Dygraph?

                Gruß

                Kommentar


                • #23
                  Hi trottel100,

                  hab hier --> https://mytec-blog.de/webdesign/web-...-zu-javascript

                  einen Beitrag gefunden, der dir vielleicht weiterhilft. Variablen- und Funktionsnamen hab ich etwas umgeändert, damit das Ganze logischer (leichter) zu lesen ist.

                  Fangen wir mit dem Tabellenabfragescript (a_1personensuche.php) an.

                  Vom aufrufendem Script wird eine TabellenID übertragen. Anschließend wird Vor- und Nachname einer Person gesucht, die unter dieser ID abgelegt ist.

                  Das Ergebnis wird in einem Array an eine Variable übergeben.

                  PHP-Code:
                  <?php
                  $id 
                  $_POST["id"]; 
                  if (
                  $id != "") {
                   
                  get_person($id);


                  function 
                  get_person($id) { 
                   
                  $conn = new PDO("mysql:host=localhost;dbname=test""guenni""guenni");
                   
                  $query "select Vorname, Nachname from tabelle2 where id = ".$id;
                   
                  $stmt $conn->prepare($query);
                   
                  $ok $stmt->execute();
                   if(
                  $ok === false){
                    
                  print_r($stmt->errorInfo());
                   }else{
                                
                  $result $stmt->fetch(PDO::FETCH_ASSOC);
                                  
                  /*
                                  * Das Array musst du gemäß deiner Abfrage mit Schlüsselnamen und Werten füllen.
                                  */
                            
                  $response = array("Vorname" => $result["Vorname"], "Nachname" => $result["Nachname"]);
                           }
                   
                  print_r(json_encode($response));
                  }
                  ?>
                  Im aufrufendem Script erfolgt dann die Ausgabe der abgefragten Tabellenspalten

                  PHP-Code:
                  <!DOCTYPE html>
                  <
                  html>
                  <
                  head>
                  <
                  meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
                  <
                  title>AJAX Test</title>
                  <
                  script src="jquery-1.10.1.js" type="text/javascript"></script>
                  <script type="text/javascript">
                  function clickJStoPHPFunctoJS(event){
                   $.ajax({
                   url: "a_1personensuche.php",
                   data: {id: "11"},
                   datatype: "json",
                   type: "POST",
                   success: function(data) { clickJStoPHPFunctoJSResponse(data); }
                   });
                  }

                  function clickJStoPHPFunctoJSResponse(data) {
                   // Antwort des Server ggf. verarbeiten
                   var response = $.parseJSON(data);
                   /*
                   * Die Werte des Arrays aus der Abfrage mittels der definierten Schlüssel abrufen.
                   */
                   var vorname = response.Vorname;
                   var nachname = response.Nachname;
                   alert("Vorname: "  + vorname + " - Nachname: " + nachname);
                  }
                  </script>
                  </head>
                  <body>
                  <button type="button" id="myClickBtn" onclick="clickJStoPHPFunctoJS(event)">JStoPHPFunctoJS</button>
                  </body>
                  </html> 
                  Gruß
                  Günni

                  Kommentar


                  • #24
                    Danke Günni, diese Sache klappt ja,

                    mein Problem ist, dass DYGraph mit meinen Variablen Probleme hat.

                    Eventuell nur ein Syntaxfehler??


                    Zitat von trottel100 Beitrag anzeigen
                    Hallo,

                    bevor ich einen anderen Weg nutze die Frage, warum funktioniert der folgende Befehl nicht?

                    PHP-Code:
                     var dataphp = " <?php echo json_encode$annos ); ?>" ; 
                     alert (dataphp);
                    das erkenne ich daran, das der alert befehl nicht ausgeführt wird.


                    Meine Aufgabe ist.

                    dygraph hat den Befehl

                    PHP-Code:
                    graphdiv2.setAnnotations(anns); 
                    wobei anns die Variable ist, kann aber auch direkt nach einer php abfrage folgenderweise geschrieben werden.

                    PHP-Code:
                    graphdiv2.setAnnotations([<?php echo $aaa ?>]);
                    Zur Info: graphdiv2 ist der Graphname.

                    beides funktioniert.

                    Leider wenn ich den php text in eine Variable umwandele geht es nicht mehr.
                    Was verändert sich dann?

                    Die Aufgabe ist eigentlich eine Datenbankabfrage zu wiederholen.
                    Ich gebe über ein geöffnetes Fenster Änderungen in die Datenbank ein, nach der Änderung sollte auf der Hauptseite der Befehl

                    PHP-Code:
                    graphdiv2.setAnnotations([<?php echo $aaa ?>]);
                    ausgeführt werden, damit die Annotations aktualisiert werden ohne die Seite neu zu laden.

                    Gruß

                    Achim

                    Kommentar


                    • #25
                      Zitat von trottel100 Beitrag anzeigen
                      Danke Günni, diese Sache klappt ja,
                      . . .

                      Die Aufgabe ist eigentlich eine Datenbankabfrage zu wiederholen.
                      Ich gebe über ein geöffnetes Fenster Änderungen in die Datenbank ein, nach der Änderung sollte auf der Hauptseite der Befehl

                      PHP-Code:
                      graphdiv2.setAnnotations([<?php echo $aaa ?>]);
                      ausgeführt werden, damit die Annotations aktualisiert werden ohne die Seite neu zu laden.

                      Gruß

                      Achim
                      Hi Achim,

                      das kann nicht funktionieren. Wenn deine Hauptseite geladen ist, wurde der PHP-Teil bereits auf dem Server ausgeführt und eine Neuinitialisierung

                      der PHP-Variablen ist nachträglich nicht mehr möglich, ohne die Hauptseite neu zu laden. Du hast allerdings mit JavaScript eine Möglichkeit

                      eine Funktion in einem definiertem Intervall immer wieder aufzurufen und damit die Daten zu aktualisieren:

                      PHP-Code:
                      window.setInterval("funktionsname()"1000); 
                      In der Funktion "funktionsname()" wird jetzt jede Sekunde das Abfragescript ausgeführt,

                      ohne die Hauptseite neu zu laden:

                      PHP-Code:
                      function abfrage(){
                       
                      /*
                       * Parameter definieren
                       */
                       
                      $.ajax({
                       
                      url"a_1dygraph_temperaturen.php",
                       
                      /*
                       * Mit @para ein Argument an die Datenbank übergeben, um Ergebnisse zu filtern
                       */
                       //data: {para: ""},
                       
                      datatype"json",
                       
                      type"POST",
                       
                      success: function(data) { Draw_DyGraph(data); }
                       });
                      }
                      window.setInterval("abfrage()"1000); 
                      Innerhalb dieser Funktion wird dann "Draw_DyGraph(data)" aufgerufen, um den Graph darzustellen.


                      Für die Daten des Graphs habe ich eine Tabelle erstellt, in der die Temperaturen für den Tag

                      und für die Nacht eines Datums eingegeben werden.

                      Feld Datum : Datum
                      Feld Tag : Tagestemperatur
                      Feld Nacht: Nachttemperatur

                      Diese Daten werden in einem Script abgerufen (siehe oben: url: "a_1dygraph_temperaturen.php")

                      und als String in einem Array gespeichert: "Datum, Tagestemperatur, Nachttemperatur\n"

                      PHP-Code:
                      <?php
                       $conn 
                      = new PDO("mysql:host=localhost;dbname=test""guenni""guenni");
                       
                      $query "select Datum, Tag, Nacht from temperaturen";
                       
                      $stmt $conn->prepare($query);
                       
                      $stmt->execute();
                       while(
                      $result $stmt->fetch(PDO::FETCH_ASSOC)){
                        
                      /*
                          * Daten für Dygraph im Array ablegen:
                          */
                        
                      $results[] = $result['Datum'].",".$result['Tag'].",".$result['Nacht']."\n";
                       }
                       
                      print_r(json_encode($results));
                      ?>

                      Im folgendem Hauptscript wird der Graph dargestellt und Annotations für die niedrigste

                      Tages- und Nachttemperatur. Änderungen oder Neueinträge in der Tabelle werden sofort im

                      Graph bzw. den Annotations sichtbar, ohne die Hauptseite neu zu laden.

                      PHP-Code:
                      <!DOCTYPE html>
                      <
                      html>
                      <
                      head>
                      <
                      title>DyGraph Ajax</title>
                      <
                      script src="jquery-1.10.1.js" type="text/javascript"></script>
                      <script src="dygraph-combined-dev.js" type="text/javascript"></script>
                      <script type="text/javascript">
                      function abfrage(){
                       /*
                       * Parameter definieren
                       */
                       $.ajax({
                       url: "a_1dygraph_temperaturen.php",
                       /*
                       * Mit @para ein Argument an die Datenbank übergeben, um Ergebnisse zu filtern
                       */
                       //data: {para: ""},
                       datatype: "json",
                       type: "POST",
                       success: function(data) { Draw_DyGraph(data); }
                       });
                      }
                      window.setInterval("abfrage()", 1000);
                      </script>
                      </head>
                      <body>
                      <p><div id = "outputAll">&nbsp;</div></p>
                      <script type="text/javascript">
                      <!--
                      /*
                      * Kleinsten Wert ermitteln
                      * res = Daten-Array aus Abfrage
                      * zeit = tag(1) oder nacht(2)
                      */
                      function Get_Min_Temp(res, zeit){
                       var data = res[0].split(",");
                       var t = 0;
                       for(var i=0;i<res.length;i++){
                        t = res[i].split(",");
                          if(Math.exp(t[zeit]) < Math.exp(data[zeit])){
                           data = res[i].split(",");
                          }
                       }
                       /*
                       * data[0] = Datum
                       * data[1] = niedrigste Tagestemperatur
                       * data[2] = niedrigste Nachttemperatur
                       */
                       return data;
                      }

                      /*
                      * Den String für den Graph zusammensetzen
                      */
                      function Graph_String(res){
                       var graph_string = res[0];
                       for(var i=1;i<=res.length;i++){
                        graph_string = graph_string + "+" + res[i];
                       }
                       return graph_string;
                      }

                      /*
                      * Annotations-Array
                      */
                      function Annotations_Array(res){
                       var tag_min = Get_Min_Temp(res, 1);
                       var nacht_min = Get_Min_Temp(res, 2);
                       var annotations = new Array();
                       annotations[0] = new Object();
                       annotations[0]['series'] = "Tag-Temperatur";
                       annotations[0]['x'] = tag_min[0];
                       annotations[0]['shortText'] = tag_min[0] + ": " + tag_min[1] + " Grad";
                       annotations[0]['text'] = "Kaeltester Tag";
                       annotations[0]['width'] = 150;
                       annotations[0]['tickHeight'] = 20;
                       annotations[1] = new Object();
                       annotations[1]['series'] = "Nacht-Temperatur";
                       annotations[1]['x'] = nacht_min[0];
                       annotations[1]['shortText'] = nacht_min[0] + ": " + nacht_min[2] + " Grad";
                       annotations[1]['text'] = "Kaelteste Nacht";
                       annotations[1]['width'] = 150;
                       annotations[1]['tickHeight'] = 20;
                       return annotations;
                      }

                      function Draw_DyGraph(data) {
                       var response = $.parseJSON(data);
                       /*
                       * Ausgabe der Daten zur Anschau, was das Abfragescript zurückgibt
                       */
                       //alert(response);
                       g = new Dygraph(
                          document.getElementById("outputAll"),
                          "Datum,Tag-Temperatur,Nacht-Temperatur\n" + Graph_String(response)
                       );
                       g.ready(function() {
                        g.setAnnotations(Annotations_Array(response));
                       });
                      }
                      // -->
                      </script>
                      </body>
                      </html> 
                      Ist mein erster Versuch mit DyGraph, vielleicht hilft es dir ja weiter.

                      Gruß
                      Günni

                      Kommentar


                      • #26
                        Hallo,
                        das mit Fenster öffnen habe ich jetzt hingekriegt, war ein Formatierungsproblem.

                        Jetzt bin ich am AJAX dran.

                        PHP-Code:
                           function oeffnefensterannotation()   {
                            
                            $.
                        ajax({ 
                         
                        url"/imker_stockwaage_003/annotations.php"
                         
                        data: {id""},
                         
                        datatype"json"
                         
                        type"POST"
                         
                        success: function(data) { clickJStoPHPFunctoJSResponse(data);  } 
                         }); 
                         
                        }  

                        function 
                        clickJStoPHPFunctoJSResponse(data) { 
                         
                        // Antwort des Server ggf. verarbeiten 
                         
                        var response = $.parseJSON(data); 
                         
                        alert("test");
                         
                        alert(response);
                         
                        graphdiv2.setAnnotations(response);
                         

                        Das ist der Quelltext auf der Hauptseite, der Befehl oeffnefensterannotation() wird von einem anderen Fenster initiiert.

                        PHP-Code:
                        ?php
                         $id 
                        $_POST["id"];  
                        include(
                        "db.log.php");
                        //$aaa = "[" ;

                          
                        $annotation_data  mysql_query("SELECT DATE_FORMAT(xval,'%Y/%m/%d %H:%i:%s') AS xval1, xval, series, shortText, text
                                                FROM "
                        .$database_anno." ORDER BY xval  ") or die(mysql_error());
                          
                          while(
                        $row mysql_fetch_array($annotation_data))
                          {
                          
                        $text str_replace("\r\n""<br>"$row['text']);       // eingebaute Umbrüche ausbessern

                          
                        $aaa " " .$aaa"{series: '".$row[series]."', x: Date.parse('".$row[xval1]."'), shortText: '".$row[shortText]."', text: '" .$text."'}," ;
                          
                         
                            }
                             
                        $results $aaa;
                         
                        //   $aaa = "".$aaa. "]";
                           
                         
                        print_r(json_encode($results));
                          
                        ?> 
                        ist die aufgerufene Datei, die die Datenbank ausliest.

                        Leider klappt es nicht, was ist falsch?

                        Die ID rufe ich nur auf weil ich dachte dies benötige ich.

                        Kommentar


                        • #27
                          Info,

                          das Formatierungsproblem war komisch.

                          PHP-Code:
                          var dat "[{series: 'AKKU [V]', x: Date.parse('2014/07/06 12:58:12'), shortText: 'A', text: 'Akku geladen'}]";  
                                
                              

                             
                          graphdiv2.setAnnotations(dat);          // Annotations anzeigen 
                          ging nicht, nur durch weglassen der Gänsefüße klappte es ????

                          PHP-Code:
                          var dat = [{series'AKKU [V]'xDate.parse('2014/07/06 12:58:12'), shortText'A'text'Akku geladen'}];  
                                
                              

                             
                          graphdiv2.setAnnotations(dat);          // Annotations anzeigen 
                          Keine Ahnung warum

                          Aber wichtiger ist mir der vorhergehende Post, da das Ajax jetzt nicht klappt.

                          Kommentar


                          • #28
                            Hallo,
                            das mit Fenster öffnen habe ich jetzt hingekriegt, war ein Formatierungsproblem.

                            Jetzt bin ich am AJAX dran.


                            PHP-Code:
                            PHP-Code:
                               function oeffnefensterannotation()   { 
                                 
                                $.
                            ajax({  
                             
                            url"/imker_stockwaage_003/annotations.php",  
                             
                            data: {id""}, 
                             
                            datatype"json",  
                             
                            type"POST",  
                             
                            success: function(data) { clickJStoPHPFunctoJSResponse(data);  }  
                             });  
                              
                            }   

                            function 
                            clickJStoPHPFunctoJSResponse(data) {  
                             
                            // Antwort des Server ggf. verarbeiten  
                             
                            var response = $.parseJSON(data);  
                             
                            alert("test"); 
                             
                            alert(response); 
                             
                            graphdiv2.setAnnotations(response); 
                              

                            Das ist der Quelltext auf der Hauptseite, der Befehl oeffnefensterannotation() wird von einem anderen Fenster initiiert.


                            PHP-Code:
                            ?php 
                             $id 
                            $_POST["id"];   
                            include(
                            "db.log.php"); 
                            //$aaa = "[" ; 

                              
                            $annotation_data  mysql_query("SELECT DATE_FORMAT(xval,'%Y/%m/%d %H:%i:%s') AS xval1, xval, series, shortText, text 
                                                    FROM "
                            .$database_anno." ORDER BY xval  ") or die(mysql_error()); 
                               
                              while(
                            $row mysql_fetch_array($annotation_data)) 
                              { 
                              
                            $text str_replace("\r\n""<br>"$row['text']);       // eingebaute Umbrüche ausbessern 

                              
                            $aaa " " .$aaa"{series: '".$row[series]."', x: Date.parse('".$row[xval1]."'), shortText: '".$row[shortText]."', text: '" .$text."'}," 
                               
                              
                                } 
                                 
                            $results $aaa
                             
                            //   $aaa = "".$aaa. "]"; 
                                
                             
                            print_r(json_encode($results)); 
                              
                            ?> 
                            ist die aufgerufene Datei, die die Datenbank ausliest.

                            Leider klappt es nicht, was ist falsch?

                            Die ID rufe ich nur auf weil ich dachte dies benötige ich.

                            Kommentar


                            • #29
                              Zitat von trottel100 Beitrag anzeigen
                              $text = str_replace("\r\n", "<br>", $row['text']); // eingebaute Umbrüche ausbessern
                              Der Kommentar zeigt dass du das Prinzip von Kontextwechseln noch nicht verstanden hast. Die "eingebauten Umbrüche" sind nämlich völlig in Ordnung - nur um sie nach dem Kontextwechsel zu HTML sehen zu können musst du sie entsprechend behandeln (<br> einbauen) aber nicht irgendwo vorher!

                              Leider klappt es nicht, was ist falsch?
                              Definiere "klappt […] nicht".

                              Die ID rufe ich nur auf weil ich dachte dies benötige ich.
                              Bahnhof. Du musst doch wissen ob du die ID zum Abfragen der Daten o.ä. brauchst oder nicht …

                              Kommentar


                              • #30
                                Zitat von tk1234 Beitrag anzeigen
                                Der Kommentar zeigt dass du das Prinzip von Kontextwechseln noch nicht verstanden hast. Die "eingebauten Umbrüche" sind nämlich völlig in Ordnung - nur um sie nach dem Kontextwechsel zu HTML sehen zu können musst du sie entsprechend behandeln (<br> einbauen) aber nicht irgendwo vorher!
                                Das musste ich einbauen, da dadurch die Daten in der Ausgabe anzeigbar waren.


                                Zitat von tk1234 Beitrag anzeigen
                                Definiere "klappt […] nicht".
                                Der Befehl wird aufgerufen, jedoch nicht ausgeführt.

                                Zitat von tk1234 Beitrag anzeigen
                                Bahnhof. Du musst doch wissen ob du die ID zum Abfragen der Daten o.ä. brauchst oder nicht …
                                Eine ID benötige ich nicht, in meinen Tests hab ich diese schon weggelassen.

                                Kommentar

                                Lädt...
                                X