将动态数据传递给javascript

时间:2010-08-02 15:47:49

标签: php javascript parameters yii

最好不要对javascript中可能发生变化的任何内容进行硬编码。例如,我想要通过php生成url。

我可以写

echo "
<script ...>
    var anUrl = $urlFromPHP;
</script>";

然后:

<script ...>
    // some code
    $.ajax({ url: anUrl ... });
</script>";

有没有更好的方法呢?有没有人知道yii框架中是否有任何内置机制?

2 个答案:

答案 0 :(得分:1)

我个人喜欢通过json_encode将php变量(数组,...)转换为javascript对象。例如,它很容易用于复杂的数组。

<?php 
// From manual:
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

echo json_encode($arr);
?>
// results
{"a":1,"b":2,"c":3,"d":4,"e":5}

答案 1 :(得分:0)

这是一个非常好的方法。虽然您可能需要围绕javascript url字符串引用:

var anUrl = '$urlFromPHP';