2016-04-18 8 views
-1

verwenden Ich entwickle eine Web-Anwendung in PHP, und ich habe Javascript oft verwendet. Jetzt muss ich eine PHP-Variable in Javascript verwenden. Zum Beispiel eine Variable, die aus einer SQL-Abfrage zurückgegeben wird, oder eine Sitzungsvariable, die im JavaScript-Abschnitt benötigt wird.wie PHP Variablen in Javascript

Was ist der beste Weg, um eine PHP-Variable in Javascript zu verwenden?

+6

Wenn PHP-Variable ist nicht Array 'var name = ; 'wenn es ein Array ist dann ;' – JiteshNK

+0

Vielen Dank @ JiteshNK –

Antwort

6

Vielleicht könnten Sie so etwas wie:

<script> 
    var a = <?php echo $a; ?>; //for numbers 
</script> 

Das vollbringen, was Sie wollen eine grundlegende Weg.

EDIT: Wie JiteshNK auch darauf hingewiesen, können Sie auch tun:

<script> 
    var a = <?php echo json_encode($a); ?>; //safest solution 
</script> 
+1

Beachten Sie, dass die erste Option nur für numerische Werte funktioniert , alles andere (einschließlich Strings) wird zu einem Fehler führen. – jeroen

+1

@jeroen, wahr. Sie könnten die PHP-Tags in Anführungszeichen setzen. – Chris

+2

Nicht wirklich, was ist, wenn die Zeichenkette Zitate enthält? 'json_encode()' ist die beste/einzige Option. Beachten Sie, dass 'json_encode()' Anführungszeichen um eine Zeichenkette setzt und alle darin enthaltenen Anführungszeichen löscht. – jeroen

0

Wenn sein einfaches String-Variable dann verwenden.

<script> 
    var a = "<?php echo $var; ?>"; 
</script> 

Wenn PHP-Variable Array dann

var resultArray = <?php echo json_encode($varArr); ?> 

// Use resultArray values in javascript 
$.each(resultArray, function(index, value) { 

} 
+0

Wenn es eine einfache String-Variable ist als 'var a = 'wird nicht funktionieren. Die Zeichenfolge wird entweder als Variablenname oder (wenn sie beispielsweise Leerzeichen enthält) als Syntaxfehler behandelt. – Quentin

-1

Ich verstehe nicht ganz, was Sie zu tun versuchen. Grundsätzlich mache ich nichts was du gerne machen würdest. Grund: JavaScript wird im Browser ausgeführt. Zu dem Zeitpunkt, zu dem Ihr JavaScript-Code ausgeführt wird, wurde die Seite bereits geladen. Zu dieser Zeit ist PHP nicht mehr verfügbar. Ihr Browser kennt nur HTML. PHP läuft auf dem Server und wird zum "Konstruieren", "Erstellen" oder "Kompilieren" Ihrer HTML-Seite verwendet. Was Sie definitiv tun können, ist: Sie können PHP verwenden, um Ihren JS-Code dynamisch zu erstellen (wie Sie dies bereits mit Ihrer HTML-Datei tun) und dort PHP verwenden, um eine JS-Variable mit dem Inhalt einer PHP-Variablen zu füllen.

+1

Was Sie sagen, ist korrekt, aber PHP kann die Variable auf das Skript-Tag ausgeben, wenn das Dokument erstellt wird, wie Sie es nennen. Dann wird js diese Variable haben, wenn es ausgeführt wird. – Chris

+0

Nun, nicht ganz. Es ist nicht die PHP-Variable.Es ist eine JS-Variable, die denselben Namen haben kann und denselben Wert hat. Aber die PHP-Variable existiert zu diesem Zeitpunkt nicht mehr. Wenn JS den Wert der Variablen ändert, gibt es keine Rückmeldung an eine PHP-Variable, da sie nicht mehr existiert. Es ist wichtig, dies zu verstehen, um zu verstehen, warum Sie keine PHP-Variablen in JS verwenden können. Übrigens, wenn Sie meine Antwort herabmelden würden, könnten Sie mir bitte erklären, warum? – TomS

+0

Es gibt hier kein Interesse, die PHP-Variable zu "updaten". Alles, was OP wollte, war, den Wert einer PHP-Variablen einer js-Variablen zu geben - um sie sozusagen zu übergeben. Nein, ich habe nicht abgesagt. – Chris

1

Sie können so etwas tun:

Wenn eine normale Variable:

<script type= "text/javascript"> 
    var a = <?php echo $var; ?>; 
</script> 

ODER

Wenn Sie json:

<script type= "text/javascript"> 
    var a = <?php echo $json_encode($var); ?>; 
</script> 
+0

Wenn es eine "normale Variable" ist, was auch immer das heißt, als 'var a = 'wird nicht funktionieren. Die Zeichenfolge wird entweder als Variablenname oder (wenn sie beispielsweise Leerzeichen enthält) als Syntaxfehler behandelt. Wenn Sie JSON haben, ist die Codierung als JSON sinnlos. – Quentin