2016-06-02 3 views
1

Wie Javascript + PHP in einer anderen Datei in current.js Datei ausführen? wie folgtAusführen von Javascript + PHP-Formular eine andere Datei

Das Szenario:

another-file.js

function foo() 
{ 
    var a = <?php echo "Hello world !"; ?> 
} 

current.js

function show() 
{ 
    var b = "Hi,"; 
    // execute javascript (with php code embeded) 
    require(another-file.js) // <-- this is not work 

    alert(a + b); // I want result: "Hi, Hello World !" 
} 
+1

Was genau möchten Sie erreichen? Was ist dein Endziel? – cyberbit

+0

JavaScript läuft auf dem Browser (Client) während PHP auf dem Server läuft. –

+0

Derzeit bin ich bei der Entwicklung eines alten Projekts, wo es einen Fall gibt, bei dem wir ein Problem lösen müssen. Ich weiß, es ist eher seltsam (Client vs Server Scripting, dass mit Ajax oder Jquery gelöst werden sollte – user3246899

Antwort

1

Sie PHP verwenden können, um die Zeichenfolge zu erzeugen, wie dies zu einem JS-Variable zugeordnet:

var myvar = "<?php echo "Hello World"; ?>"; 

In Ihrem Beispiel vergessen haben, die Anführungszeichen um die PHP-Tags (vor <?php und nach ?>), so waren Sie wahrscheinlich Fehler bekommen, weil der JS-Interpreter nach Variablen namens Hello und World suchte, anstatt "Hello World" als String zu betrachten.

Jetzt, da wir wissen, können Sie nicht enthält in JS haben, wie man es in anderen Sprachen, , was die Leute normalerweise tun, ist nur mehrere <script> Tags mit mehr als einem JS in die Seite aufzunehmen. wenn aus irgendeinem Grund jedoch, dass ich ignorieren, müssen Sie unbedingt die JS in eine andere JS umfassen, was Sie tun können, ist jQuerys mit getScript() finden Sie hier für weitere Informationen https://api.jquery.com/jquery.getscript/:

$.getScript("another-file.js") 
    .done(function() { 
     alert(a + b); 
    }) 
    .fail(function() { 
     console.log("Ooops there was a problem"); 
    }); 

EDIT: wie gesagt in mein anderer Kommentar können Sie auch eine AJAX-Abfrage senden und dann eval() (was ist, was getScript() hinter den Kulissen tut), oder Sie können ES6-Module verwenden, aber das ist über den Rahmen dieser Frage hinaus.

+0

Dank Mastazi erinnern mich über das Zitat, aber eigentlich gibt es nicht mein Problem, es nur ein Konzept, um mein wirkliches Problem zu erklären. – user3246899

+0

dann habe ich Angst, ich verstehe nicht, was ist Ihr "echtes Problem" – mastazi

+0

Wenn Sie über die Tatsache sprechen, dass 'require' funktioniert nicht in JS, dann werde ich die Antwort bearbeiten – mastazi

-1

Es gibt ein paar Dinge falsch hier.

  1. Sie können PHP-Code nicht in einer JavaScript-Datei ausführen. PHP ist eine serverseitige Sprache, JavaScript ist (traditionell) eine clientseitige Sprache. Sie können PHP-Code nicht mit einem JavaScript-Interpreter ausführen oder umgekehrt.
  2. Sie können keine JavaScript-Datei aus einer anderen JavaScript-Datei einfügen. Vielmehr müssen Sie beide Skripte auf einer Webseite sind, wie folgt aus:

    <body> 
        <script src="file1.js"></script> 
        <script src="file2.js"></script> 
        <script> 
        functionFromFile1(); 
        functionFromFile2(); 
        </script> 
    </body> 
    

Ich fühle mich wie ein disconnect hier ist, das gelöst werden muss.

+0

Ja, ich weiß das. Eigentlich dies in einem alten Projekt, und ich sehe dort ist etwas Fall, wo PHP-Code in JavaScript-Code eingebettet, und es funktionieren so etwas wie dieser Snipe Code: Name: 'ITEM', Daten: [ , ], stack: 'inti' – user3246899

+0

Sie können eine JS-Datei auch in eine andere einfügen, auch wenn sie nicht so einfach ist wie in anderen Sprachen. Sie können JQuerys 'getScript()' verwenden oder 'eval()' ein Skript, das von einer AJAX-Anfrage zurückgegeben wird. Darüber hinaus stellt ES6 Module bereit, die importiert werden können. – mastazi

+1

Ja, wie wir in diesem Thema sehen können: http://stackoverflow.com/questions/950087/include-a-javascript-file-in-another-javascript-file. Aber es führt nur JavaScript-Code – user3246899

Verwandte Themen