.js文件中的php标签

时间:2011-01-27 20:52:00

标签: php javascript

如何在.js文件中输入<? echo "hello"; ?>。 这是一个jquery应用程序,因此是js文件。

由于 让

4 个答案:

答案 0 :(得分:16)

如果PHP解释器配置为在* .js文件上运行,那么你只能这样做,默认情况下它不会。老实说,我不推荐这种行为。

我要做的是这样的事情(这种方法也可以用于CSS文件。):

<script type="text/javascript" src="js.php"></script>

<强> js.php

<?php
//GZIP the file and set the JavaScript header
ob_start("ob_gzhandler");
header("Content-type: text/javascript");

//Set a JavaScript variable based on PHP work
echo 'var logged_in_user = "'.$_SESSION['username'].'";';

//Require an external script
require_once($_SERVER['DOCUMENT_ROOT']."/path/to/jquery.js");
?>

//More Javascript functions and code here
$(document).ready(function() {
  $('#mydiv').tipsy();
});

<?php
//Flush the output buffer
ob_end_flush();
?>

我个人这样做有很多原因。

  1. 我想要包含许多jQuery文件,但我不希望我的浏览器执行5个以上的HTTP请求。将它们全部包含在一个文件中意味着更少的HTTP请求。
  2. GZIP!我大大减少了传输文件的大小,并为访问者加快了速度。
  3. 这是添加,删除或修改整个网站的JavaScript的中心位置。我甚至可以使用$_GET检查来根据我编写<script>标记的方式使某些脚本成为条件。

    例如,<script type="text/javascript" src="js.php?var=1"></script>。然后我可以在js.php文件中查看$_GET['var']

答案 1 :(得分:1)

您经常不在JavaScript文件中使用PHP。 Javascript是一种客户端语言,可在Web浏览器中进行解释。 PHP在Web服务器上运行。

但是,如果您需要将PHP代码中的数据传递到javascript文档,则可以执行以下操作:

$js = "<script> myObject = " . json_encode($your_data) . " </script>";
print $js;

如果您在<head> - HTML文档的一部分中执行此操作,则可以在之后加载的其他JS文件中访问myObject

$your_data可以是数组或任何类型的对象,字符串或整数。在互联网周围寻找PHP JSON

答案 2 :(得分:0)

我认为不可能在js文件中输入php,但是: 尝试创建一个元素div例如或输入...

然后使用此函数获取div标签的值。

    function AddHiddenValue(oForm) {
       var strValue = document.getElementById("city").value;
       alert("value: " + strValue);
       var oHidden = document.createElement("input");
       oHidden.name = "printthisinput";
       oHidden.value = strValue;
       oForm.appendChild(oHidden);
    }

它来自另一个对象形式(选择..)

document.getElementById("city").value;

答案 3 :(得分:-1)

好的伙伴在这里就是答案

问:我想将变量的值输入到.js文件中,不允许使用php标记,js会抛出错误。

A:写一个

在所述.js文件之前

<script> <? var value_pass = echo "hello"; ?> </script>

在上述.js文件中 var value = value_pass;

所以不需要任何ob_end_flush。

如果这不可行,请告诉我。

由于 让