How to show all images dynamically in kartik fileinput widget?

How to show all images dynamically inside initialPreview?

<?php
$allimage = '';                         
foreach ($product_image as $index => $eachimage) {

    $baseurl = \Yii::$app->request->BaseUrl;
    $image_url = $baseurl.Yii::$app->params['show_product_big_path'].$eachimage['image_url'];                                   
    $allimage .= Html::img("$image_url",  ['class'=>'file-preview-image']);             
} 
    $allimage = trim($allimage, ',');

    echo FileInput::widget([
        'name' => 'productimage[]',
        'options'=>[
        'multiple'=>true,
        'id'=>'input-702',
    ],
      'pluginOptions' => [
        'initialPreview'=>[ 
            $allimage                                                                           
         ],
      'overwriteInitial'=>false
    ]
]);

?>
<?php } ?>

But, it shows only last image inside initialPreview. How is it possible?

Upvotes: 1

Views: 1441

Answers (1)

Sohel Ahmed Mesaniya
Sohel Ahmed Mesaniya

Reputation: 3450

Put it into array (please refer doc) (hit Ctrl + F then type initialPreview)

<?php
$allimage = array();
foreach ($product_image as $index => $eachimage) {
    $baseurl = \Yii::$app->request->BaseUrl;
    $image_url = $baseurl.Yii::$app->params['show_product_big_path'].$eachimage['image_url'];
    $allimage[] = Html::img("$image_url",  ['class'=>'file-preview-image']);
}



echo FileInput::widget([
    'name' => 'productimage[]',
    'options'=>[
        'multiple'=>true,
        'id'=>'input-702',
    ],
    'pluginOptions' => [
        'initialPreview'=>$allimage,
        'overwriteInitial'=>false
    ]
]);

?>

Upvotes: 1

Related Questions