doubi7346 2017-11-02 10:13
浏览 37
已采纳

yii2用图像多重选择

I used Yii2 multiple selection dropdown with image , it is working fine at create but not showing me selected values on update... Form:

<?php
    $allProducts = Product::find()->where('active = 1')->all();
    $prArr = array();
    if ($allProducts) {
        foreach ($allProducts as $allProduct) {
            echo '<option value="' . $allProduct->id . '" style="color: #000; height: 50px; padding-left: 70px;padding-top: 15px;background-image: url(\'' . $allProduct->getThumb() . '\');background-repeat: no-repeat;background-size: 65px auto;">' . $allProduct->title . '</option>';
        }
    }
?>

Controller:

$oldRels = ProductRelated::find()->where('main_product_id = :main_product_id', ['main_product_id' => $model->id])->all();
if ($oldRels) {
    foreach ($oldRels as $oldRel) {
        $oldRel->delete();
    }
}
if (isset($_POST['relProducts']) and ! empty($_POST['relProducts'])) {
    foreach ($_POST['relProducts'] as $relProduct_id) {
        $relProduct = new ProductRelated;
        $relProduct->main_product_id = $model->id;
        $relProduct->rel_product_id = $relProduct_id;
        $relProduct->save(false);
    }
}

How I can show multi selected values in dropdown with images when I update my recored?

  • 写回答

1条回答 默认 最新

  • douhu3424 2018-03-28 11:52
    关注

    you can try this:

     <select id="relProductSelect" name="relProducts[]" multiple>
         <?php 
         $allProducts = Product::find()->where('active = 1')->all();
         $arrRelatedProducts = ArrayHelper::map(ProductRelated::find()->where('main_product_id = :main_product_id', ['main_product_id' => $model->id])->all(), 'rel_product_id', 'rel_product_id');
         if($allProducts){
           foreach($allProducts as $allProduct){
            if(in_array($allProduct->id, $arrRelatedProducts)){
                echo '<option value="'.$allProduct->id.'" selected style="color: #000; height: 50px; padding-left: 70px;padding-top: 15px;background-image: url(\''.$allProduct->getThumb().'\');background-repeat: no-repeat;background-size: 65px auto;">'.$allProduct->title.'</option>';    
            }else{
              echo '<option value="'.$allProduct->id.'" style="color: #000; height: 50px; padding-left: 70px;padding-top: 15px;background-image: url(\''.$allProduct->getThumb().'\');background-repeat: no-repeat;background-size: 65px auto;">'.$allProduct->title.'</option>';
                                            }
                                    }
                            }
                    ?>
                    </select>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 制裁名单20240508芯片厂商
  • ¥20 易康econgnition精度验证
  • ¥15 线程问题判断多次进入
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接