如何在JavaScript或jQuery中访问PHP变量而不是<?php echo $ variable?>

Ste*_*ven 47 javascript php jquery

如何在JavaScript或jQuery中访问PHP变量?我必须写

<?php echo $variable1 ?>
<?php echo $variable2 ?>
<?php echo $variable3 ?>
...
<?php echo $variablen ?>
Run Code Online (Sandbox Code Playgroud)

我知道我可以在cookie中存储一些变量,并通过cookie访问这些值,但cookie中的值是相对稳定的值.而且,有一个限制,你不能在cookie中存储很多值,并且方法不那么方便.有没有更好的方法呢?

Kar*_*ten 135

您的示例显示了将PHP变量传递给JavaScript的最简单方法.您还可以将json_encode用于更复杂的事物,例如数组:

<?php
    $simple = 'simple string';
    $complex = array('more', 'complex', 'object', array('foo', 'bar'));
?>
<script type="text/javascript">
    var simple = '<?php echo $simple; ?>';
    var complex = <?php echo json_encode($complex); ?>;
</script>
Run Code Online (Sandbox Code Playgroud)

除此之外,如果你真的想在PHP和JavaScript之间"互动",你应该使用Ajax.

使用cookie是一种非常不安全和不可靠的方式,因为它们存储在客户端,因此可以进行任何操作,甚至不会被接受/保存.不要将它们用于此类交互. jQuery.ajax是一个很好的开始恕我直言.

  • +1举例说明JSON. (5认同)
  • 你有引号`<?php echo $ simple; ?>`我觉得这是对的.但你有引号`<?php echo json_encode($ complex); ?>`同样,我认为这是错的---`json_encode()`返回有效的javascript,所以你不想引用它,当然? (4认同)
  • 啊,但它不能在扩展名为.js的js文件中调用( (3认同)

str*_*ium 5

如果AJAX不是一个选项,您可以使用嵌套数据结构来简化.

<?php
$var = array(
    'qwe' => 'asd',
    'asd' => array(
        1 => 2,
        3 => 4,
    ),
    'zxc' => 0,
);
?>
<script>var data = <?php echo json_encode($var); ?>;</script>
Run Code Online (Sandbox Code Playgroud)