2016-03-27 6 views
1

Ich stelle fest, dass ich Substituieren PHP in JavaScript substitue können, die inline in HTML ist, wie folgt:PHP in JavaScript

<script> 
    jQuery('select#age_group').val(<?php echo $age_group?>); 
</script> 

Aber die PHP-Substitution in einer JS-Datei, die das PHP-Datei nicht funktioniert Ladungen. Warum ist das und wie kann ich die Substitution in der geladenen .js Datei machen?

+0

Weil php nichts über irgendwelche css/js-Dateien weiß, die Sie einschließen. –

+0

Sie müssen den Dateierweiterungen PHP-Prozesse '.js' hinzufügen. Vermutlich ist das ein Teil deiner 'httpd.conf' – Sirko

Antwort

1

Hier sind zwei Möglichkeiten, wie Sie dies tun können, ohne die Dateierweiterungen zu ändern, die die PHP-Engine verarbeiten kann.

Zuerst können Sie eine globale Variable inline setzen und dann auf diese Variable in der JS zugreifen, die Sie einschließen.

<script>global_age_group = <?php echo $age_group?>;</script> 

<script src="js_that_accesses_age_group.js" /></script> 

(Standard Warnungen über globale Variablen gelten)

Zweitens können Sie Ihre JS geben die Erweiterung .php-Datei, so ...

<script src="js_that_accesses_age_group.php" type ='application/javascript'/></script> 

Und dann verwenden

<?php echo $age_group?> 

in dieser Datei wie in Ihrem Inline-Beispiel.

-1

Die einfache Antwort, die Sie nicht können!

Sie können kein PHP-Skript mit Ausnahme von .php-Dateien schreiben, Das Schreiben von PHP-Skripten in .html-, .css- oder .js-Dateien ist nicht möglich, da der Compiler die .js-Datei oder .html nicht übergibt Datei um es zu lesen!

+0

" du kannst nicht "ist falsch. Wie andere gesagt haben, kann man die Erweiterungen ändern, die die PHP-Engine verarbeitet, oder man könnte eine PHP-Erweiterung für die JS-Datei verwenden. – Greg

0

übergeben Sie den Wert auf ein Element Attribut oder auf js var wie Sie

<script> 
var age = 20; 
</script> 
<script src="main.js"></script> 

tat und Ihr kann das Alter innen verwenden main.js

0

Standardmäßig wird PHP nur Dateien Prozess endet in bestimmte Erweiterungen (am häufigsten .php). Wenn Sie PHP in einer JavaScript-Datei verwenden möchten, geben Sie am einfachsten eine .php-Erweiterung an.

Die meisten Browser auch verweigern sie JavaScript zu verarbeiten, das nicht den richtigen Inhaltstyp hat, so an der Spitze Ihrer Datei hinzufügen

<?php 
header("Content-Type: application/javascript"); 
1

diese stattdessen versuchen ... Lassen Sie mich wissen, ob es funktioniert

</form> 
</div> 
<?php echo"<script> 
     jQuery('select#age_group').val($age_group); 
</script>"; 
?> 
</body> 
</html> 
+0

Ja, das funktioniert. Gibt es einen Vorteil, es so zu machen? – Steve

+1

Kein besonderer Vorteil @Steve Dies macht Ihren Code einfach und leicht verständlich, wenn Sie ihn das nächste Mal besuchen. – Ukor