【问题标题】:Set a javascript variable in cake php and retrieve its value inside normal javascript在 cake php 中设置一个 javascript 变量并在普通 javascript 中检索它的值
【发布时间】:2012-03-22 15:32:56
【问题描述】:

如何设置cake php中声明的javascript变量,例如

echo $this->Js->set('jsvalue','test');

我需要在普通 javascript 中获取 jsvalue 值

<script>
    // This will need to get value as 'test'
    console.info(jsvalue);
</script>

我目前正在使用cakephp (1.3)。如果 1.3 版本不支持此功能,请告诉我它在 2.0 版本中是如何实现的。

【问题讨论】:

    标签: cakephp cakephp-1.3 cakephp-2.0


    【解决方案1】:

    它在window.app 上设置为一个对象来命名它。或者,在 JsHelper 属性上设置 $setVariable 会将命名空间更改为 window.&lt;namespace&gt;。

    所以,它会这样设置:

    window.app = {"jsvalue" : "test"}

    【讨论】:

    • 那么,如何在普通 javascript 中将其作为变量。虽然我试图把它当作 window.app.jsvalue 给出一个错误 window.app is undefined.
    • 我认为它可能设置为“应用程序”以外的其他内容,也许是您的应用程序名称?请改用window.&lt;app_name&gt;。
    • 我的应用程序文件夹名称是“应用程序”本身。当我在脚本 cdata window.app = {"jsvalue":"test"}.but 中签入 firebug 时,它是如何恢复的......
    • 只是一个对象,所以window.app.jsvalue = 'test'。
    • 虽然尝试上面给出了未定义的错误。 console.info(window.app.jsvalue) 给出错误
    【解决方案2】:

    如果您在视图部分编写了 javascript,那么您可以直接使用类似的东西。 如果您使用普通的$this-&gt;set('jsvalue','test'); 并按以下方式使用它,我没有得到$this-&gt;Js-&gt;set('jsvalue','test'); 的含义,而不是这个。

    <script>
        // This will need to get value as 'test'
        console.info(<?php echo $jsvalue; ?>);
    </script>
    

    试试这个,应该可以。

    【讨论】:

    • 它应该可以工作,我认为这是唯一的方法。检查源代码,检查 PHP 值是否实际设置并检查 firebug 是否有 javascript 错误。
    • @KevinVandenborne firebug 错误是 syntax error 和 cake 错误 Undefined variable: jsvalue
    • 对不起,我忘了在 jsvalue 变量之前添加 $ 符号。我正在编辑我的答案。您现在可以尝试,但请确保您已将该值从控制器设置为其他变量。像这样,您可以在 javascript 中使用任何变量。
    猜你喜欢
    • 2013-07-07
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 2014-01-23
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多