寄存器JS中数组到字符串的转换-Yii2

问题描述 投票:0回答:1

我认为我可以通过执行以下操作来达到一个数组:

$model->stabilimenti;

现在在同一视图中,在registerJS中,我试图将此数组保存为Javascript数组,所以我可以添加一些客户端检查。

<?php
$this->registerJs(<<<JS
    jQuery(document).ready(function(){

    let jsArray = [];
    jsArray = $model->stabilimenti;

JS
);

对于非数组变量,这种方法有效。

我也尝试使用此表示法,但没有成功。

let jsArray = <?php echo json_encode($model->stabilimenti); ?>;

这是合法行动吗?

javascript php arrays yii2 data-conversion
1个回答
1
投票

如果不是在此处粘贴代码的错字,则缺少})函数的右花括号和括号.ready(function(){

您应该使用数组yii\helpers\JSON上的json_encode$model->stabilimenti将php数组解析为javascript,然后将其转换为json,然后将其分配给javascript变量。并尝试在注册脚本时使用\yii\web\View::POS_READY在DOM就绪时加载代码。

并且您应该将代码彼此分开。参见下面的代码,它应该可以正常工作

<?php
$stabilimenti = \yii\helpers\Json::encode($model->stabilimenti);

$js = <<<JS
jQuery(document).ready(function(){
    let jsArray = {$stabilimenti};
});
JS;
$this->registerJs($js, \yii\web\View::POS_READY);
© www.soinside.com 2019 - 2024. All rights reserved.