将值传递给php中的javascript

时间:2013-02-18 22:09:09

标签: php javascript

JS函数需要一个由PHP生成的变量。 .js文件无法解释<?php ?>字符串,因此我必须从.html代码中传递它。

是的,但是从HTML运行JS代码被认为是不好的做法(就像style元素一样)。然后该怎么办?

3 个答案:

答案 0 :(得分:1)

您可以使用echo执行以下操作:

<? echo('<script type="text/javascript">var hello="world"</script>');

答案 1 :(得分:1)

有几种选择。首先,你可以建立你的第一个例子。

<?php

$myVariable = array('key' => 'value', 'anotherKey' => 10);

?>

// PHP variable output in javascript's object syntax
var phpData = <?php echo json_encode($myVariable); ?>;

// value
console.log(phpData.key);
// 10
console.log(phpData.anotherKey);

另一种选择是使用对PHP脚本的Ajax请求来检索数据。根据您的问题,此选项很可能没用,因为您在页面加载时拥有数据。

答案 2 :(得分:1)

  

.js文件无法解释<?php ?>字符串

为文件提供.php扩展名。 (确保通过header()调用覆盖PHP的默认Content-Type输出。

  

但是从HTML运行JS代码被认为是不好的做法(就像样式元素一样)。

这是因为内联JS对缓存不利。如果文件是动态生成的,那么无论如何你都可能无法正常缓存它。