Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用yii从数据库中的值初始化javascript数组?_Javascript_Arrays_Yii2 - Fatal编程技术网

如何使用yii从数据库中的值初始化javascript数组?

如何使用yii从数据库中的值初始化javascript数组?,javascript,arrays,yii2,Javascript,Arrays,Yii2,我必须创建一个javascript数组,其元素是硬编码的,但我想从数据库中获取它们的元素。可能吗?如果是,怎么做? 这是我的密码 <div id="wrapper"></div> <script> var container = document.getElementById("wrapper"); var array = ["../Images/stu_9.png", "../Images/stu_9.png", "../Images/stu_9.png",

我必须创建一个javascript数组,其元素是硬编码的,但我想从数据库中获取它们的元素。可能吗?如果是,怎么做? 这是我的密码

<div id="wrapper"></div>
<script>
var container = document.getElementById("wrapper");
var array = ["../Images/stu_9.png", "../Images/stu_9.png", "../Images/stu_9.png", "../Images/stu_9.png"];
for( i=0; i<array.length; i++){
  container.insertAdjacentHTML('beforeend', '<img src="'+array[i]+'">');
}
</script>
</head>
<body>
 <div id="wrapper"></div>

假设已将图像路径保存在数据库中的字段中,则需要先将其写入DOM,然后才能访问它们。这可以通过将变量回显到页面本身来实现。如果您不希望这些文件路径对访问者可见,可以使用CSS隐藏它们

<?php

$image_paths = []; // An array containing your image paths, retrieved from the database

echo "<div id='images'>";
foreach($image_paths as $image_path) {
  echo "<div>" . $image_path . "</div>";
}
echo "</div>";

?>
然后,可以使用JavaScript将此不可见DOM作为目标:

var图像_数组=[]; var images=document.getElementById'images'; 对于var i=0;i
<?php
$this->registerJs('var container = document.getElementById("wrapper");
var array = '.$arr_Images_From_controller.';
for( i=0; i<array.length; i++){
container.insertAdjacentHTML("beforeend", "<img src="/'+array[i]+/'">");
}');
?> 

所以您要问的是如何从数据库中的字段中获取图像位置,并将它们传递给var数组?您需要先将它们写入DOM,然后才能访问它们。您也有重复的ID,不应该真正使用单词数组作为变量名,因为它与名称数组相邻。请详细说明您的答案,我可以在哪里写入文档对象模型?但是如何从数组中的数据库检索图像路径??此代码不起作用。我不确定您的数据库和连接方法的确切配置,但考虑到您使用的是Yii,您可以使用类似$array=Yii::app->db->createCommand->select'images'->from'table'->queryal;。有关更多信息,请参阅。一旦您将信息放入数组中,上面的操作将如示例中所示。添加上述代码后,调用未知方法时会出现错误:yii\db\Command::select$image\u paths=yii::$app->db->createCommand->select'Car\u image'->from'register\u Car'->queryal;
#images {
  display: none;
}
You can use client side script for this.Follow below steps
  1. Get an array of images path from database in controller action.
  2 Render this array on view part.
  3. Write client side script in your view file i.e. $this->registerJs("script code here");
<?php
$this->registerJs('var container = document.getElementById("wrapper");
var array = '.$arr_Images_From_controller.';
for( i=0; i<array.length; i++){
container.insertAdjacentHTML("beforeend", "<img src="/'+array[i]+/'">");
}');
?>