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

C. *_*ris 5 php ajax yii2

以下是我视图中的ajax脚本.

$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);
Run Code Online (Sandbox Code Playgroud)

现在我的问题是如何将param1,param2和param3的值设置为动态,就像我要从php变量传递params1到3.

rob*_*sch 7

你可以这样做:

$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);
Run Code Online (Sandbox Code Playgroud)

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

有关使用过的Heredoc(允许使用变量)语法的官方信息可以在这里找到.