首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Yii2 $this->registerJs( $js );如何在$js内部传递php变量

Yii2 $this->registerJs( $js );如何在$js内部传递php变量
EN

Stack Overflow用户
提问于 2016-02-01 15:13:21
回答 2查看 9.6K关注 0票数 7

下面是我视图中的ajax脚本。

代码语言:javascript
运行
复制
$js = <<< JS
    $('.list-link').click(function(){
        $.ajax({
            url: '?r=public/getlist&param1=01&param2=02&param3=03',
            dataType: "json",
            success: function(data) {
                $(".well").html(data.id);                
            }
        })
    });
JS;
$this->registerJs($js);

现在我的问题是如何使param1、param2和param3的值动态,就像我要将params1从php变量传递给3一样。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-01 15:26:17

你可以这样做:

代码语言:javascript
运行
复制
$url = \yii\helpers\Url::to([
    'public/getlist', 
    'param1' => '01', 
    'param2' => '02', 
    'param3' => '03'
]);

$js = <<< JS
    $('.list-link').click(function(){
        $.ajax({
            url: $url,
            dataType: "json",
            success: function(data) {
                $(".well").html(data.id);                
            }
        })
    });
JS;
$this->registerJs($js);

当然,您也可以将参数的数量设置为动态的,因为它只是一个传递给Url::to()的数组。

有关使用的Heredoc (允许变量使用)语法的官方信息可以在here中找到。

票数 10
EN

Stack Overflow用户

发布于 2016-02-01 15:40:53

robsch的方法很棒(上面的答案)。

但是你也可以这样做:

代码语言:javascript
运行
复制
$js = <<< JS
    $('.list-link').click(function(){
        $.ajax({
            url: '?r=public/getlist&amp;param1=$one&amp;param2=$two&amp;param3=$three',
            dataType: "json",
            success: function(data) {
                $(".well").html(data.id);                
            }
        })
    });
JS;
$this->registerJs($js);

其中$one$two$three是PHP变量。

,别忘了用&amp;替换上面$js变量中的Javascript文本代码字符串中的&。它不容易出错,也是

的好实践。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35124829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档