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 mmocr的训练错误,结果全为0
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀