Ankündigung

Einklappen
Keine Ankündigung bisher.

JS Funktion über PHP Datei schreiben

Einklappen

Neue Werbung 2019

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

  • JS Funktion über PHP Datei schreiben

    Hallo,

    ich klicke auf einen Button der über XMLHttpRequest eine PHP Datei ausführt in dem eine neue JS Funktion erstellt wird.

    Das Ergebniss der PHP Datei wird in einen DIV Container geladen.

    Wenn ich jetzt den zweiten button klicke soll die neue Funktion die in den DIV Container geschrieben worden ist ausgeführt werden.
    Das funktioniert aber so nicht. Wahrscheinlich weil die neue Funktion über eine externe PHP Datei geschrieben worden ist.

    Wie kann ich eine JS Funktion über einen XMLHttpRequest mit PHP schreiben lassen und danach ausführen ???

    Danke für jede Hilfe !!!

    Hier der Code von der ersten Seite:
    HTML-Code:
    <html>  
      <head>  
        <script type="text/javascript">    
          function createfunc()      
            {      
            if(window.XMLHttpRequest)        
              {        
              RNG_Option = new XMLHttpRequest();        
              }      
          else        
             {        
             RNG_Option = new ActiveXObject("Microsoft.XMLHTTP");        
             }      
          RNG_Option.onreadystatechange=function()        
            {        
            if(RNG_Option.readyState==4 && RNG_Option.status==200)              
              {              
              document.getElementById("phprequest").innerHTML=RNG_Option.responseText;          
              }            
            }      
         RNG_Option.open("GET","create.php", true);      
         RNG_Option.send();      
         }              
       </script>          
       </head>          
    
      <body>    
        <a onclick="createfunc();">Create Function</a>    
        <div id="phprequest"></div>    
        <a onclick="callfunc();">Call Function</a>    
      </body>
    </html>

    und hier die datei create.php in der die JS Funktion erstellt wird :
    PHP-Code:
    <?php
    echo "<script type='text/javascript'>";
    echo 
    "function callfunc()";
    echo 
    "{";
    echo 
    "alert('CALL MY FUNCTION');";
    echo 
    "}";
    echo 
    "</script>";
    ?>


  • #2
    Dynamisch JavaScript-Code erstellen ist ziemlicher Käse. Auch sollte kein JavaScript-Code in HTML-Code geschrieben werden. Es gibt keinen wirklichen Grund sowas zu tun.

    Das sauberste und einfachste ist, wenn du JavaScript-Code ausschließlich in JavaScript-Dateien schreibst.

    Kommentar


    • #3
      Ich rufe eine API die mir ein JSON File generiert. Wenn ich die API mehrmahls auf der gleichen Seite aufrufe kommt es zum einen zu einer höheren Ladezeit und zum anderen zu mehr Calls das wiederum dann mehr kosten würde. Deswegen will ich das dynamisch nur dann machen wenn der User auch wirklich danach abfragt. So das die Inhalte auf der selben Seite zu sehen sein sollen. Gibt es eine Möglichkeit diesen Code zum laufen zu bringen ??? Danke !!!

      Kommentar


      • #4
        Zitat von iones Beitrag anzeigen
        Ich rufe eine API die mir ein JSON File generiert. Wenn ich die API mehrmahls auf der gleichen Seite aufrufe kommt es zum einen zu einer höheren Ladezeit und zum anderen zu mehr Calls das wiederum dann mehr kosten würde. Deswegen will ich das dynamisch nur dann machen wenn der User auch wirklich danach abfragt. So das die Inhalte auf der selben Seite zu sehen sein sollen
        Dann mach das doch. Das hat aber nichts mit dem gezeigten Code zu tun.

        Zitat von iones Beitrag anzeigen
        Gibt es eine Möglichkeit diesen Code zum laufen zu bringen ???
        Ja, entsorgen und durch richtigen Code ersetzen.

        Kommentar


        • #5
          Zitat von iones Beitrag anzeigen
          Ich rufe eine API die mir ein JSON File generiert. Wenn ich die API mehrmahls auf der gleichen Seite aufrufe kommt es zum einen zu einer höheren Ladezeit und zum anderen zu mehr Calls das wiederum dann mehr kosten würde. Deswegen will ich das dynamisch nur dann machen wenn der User auch wirklich danach abfragt. So das die Inhalte auf der selben Seite zu sehen sein sollen. Gibt es eine Möglichkeit diesen Code zum laufen zu bringen ??? Danke !!!
          Ruf im PHP Script die API auf und liefer das Ergebnis zurück. Weshalb du da meinst eine JavaScript-Funktion dynamisch erstellen zu müssen weiss ich echt nicht.

          Kommentar


          • #6
            Zitat von iones Beitrag anzeigen
            Ich rufe eine API die mir ein JSON File generiert. Wenn ich die API mehrmahls auf der gleichen Seite aufrufe kommt es zum einen zu einer höheren Ladezeit und zum anderen zu mehr Calls das wiederum dann mehr kosten würde.
            Von wo rufst du denn die API auf? Clientseitig per JavaScript?
            Üblicherweise werden API's vom Server über PHP angesprochen und gecached.

            PHP-Klassen auf github

            Kommentar


            • #7
              Habe jetzt die Richtung in der ich gehen muss verstanden Vielen Dank !!!

              Die API ruf ich vom Server über PHP auf.

              Werde nun versuchen JSON über PHP an eine existierende JS Funktion zu übergeben und dort auszuwerten.

              Kommentar

              Lädt...
              X