yii框架中的下拉菜单和单选框

yii中的下拉菜单:

第一种:

<?= $form->field($model, ‘parent_id‘)->dropDownList(ArrayHelper::map($data,‘cat_id‘,‘new_cat_name‘) ,[‘prompt‘ => ‘请选择父级分类‘]) ?

第二种:

<?= $form->field($model, ‘banner_address‘)->dropDownList(ArrayHelper::map(address::find()->all(),‘ad_id‘,‘ad_name‘) ,[‘prompt‘ => ‘请选择广告位‘]) ?>

两者的唯一区别就是ArrayHelper::map()的第一个参数不同,因为第一种是要做无限极分类的,所以用的是数组,第二种直接查表就可以了,很方便。

[‘prompt‘ => ‘请选择父级分类‘]表示默认选项,这里有一个问题就是,不知道怎么给默认的这个选项一个值,试了很多方法,默认选项对应的值一直是空的

就是这样的:

‘请选择父级分类’一直没有对应的value值,所以提交时要验证不能为空。

ArrayHelper::map()的用法:

ArrayHelper::map( $array, $from, $to, $group = null )

通过map方法将一个结果集或多维数组每项的2个字段抽取出来,一个作为key、一个作为value,重新组成一个数组作为结果返回

第三个函数$group,这是一个可选参数,它能实现类似于sql的group by分组功能

yii里的单选按钮:

<? echo $form->field($model, ‘is_show‘)->radioList([‘1‘=>‘是‘,‘0‘=>‘否‘]) ?>

单选按钮很简单,但是设置单选按钮的值是一个问题,查了资料,最后用了这一种

public function actionCreate()
    {
        $model = new Banner();
        $model->is_show=1;
        if ($model->load(Yii::$app->request->post()) && $model->save()){
            $model->banner_img = UploadedFile::getInstance($model, ‘banner_img‘);
            if ($model->banner_img && $model->validate()) {
                $fileName = ‘../../uploads/‘ . date("YmdHis") . ‘.‘ . $model->banner_img->extension;
                $model->banner_img->saveAs($fileName);
                $data=Yii::$app->request->post();
                $model->banner_img=$fileName;
                $model->start_time=strtotime($data[‘Banner‘][‘start_time‘]);
                $model->end_time=strtotime($data[‘Banner‘][‘end_time‘]);
                $res=$model->save();
                if($res){
                    return $this->redirect([‘view‘, ‘id‘ => $model->banner_id]);
                }else{
                    return $this->render(‘create‘, [
                        ‘model‘ => $model,
                    ]);
                }
            }else{
                return $this->render(‘create‘, [
                    ‘model‘ => $model,
                ]);
            }
        } else {
            return $this->render(‘create‘, [
                ‘model‘ => $model,
            ]);
        }
    }

就是在控制器里加了一个默认值,感觉不太科学,可是没有找到别的办法

这一篇满满的都是问题,但还是不要脸的写了出来,方便以后看。。。

时间: 2024-08-08 05:32:52

yii框架中的下拉菜单和单选框的相关文章

yii2框架中使用下拉菜单的自动搜索yii-widget-select2

github中源代码地址:https://github.com/kartik-v/yii2-widget-select2 利用composer.phar安装此插件: php composer.phar require kartik-v/yii2-widget-select2 "*" 引用方法: use kartik\select2\Select2; 源代码:  <?= $form->field($model, 'companies_company_id')->widg

Bootstrap中的下拉菜单

下拉菜单(基本用法) 小伙伴们注意,在Bootstrap框架中的下拉菜单组件是一个独立的组件,根据不同的版本,它对应的文件: ?  LESS版本:对应的源码文件为 dropdowns.less ?  Sass版本:对应的源码文件为 _dropdowns.scss ?  编译后的Bootstrap版本:查看bootstrap.css文件第3004行-第3130行 在使用Bootstrap框架的下拉菜单时,必须调用Bootstrap框架提供的bootstrap.js文件.当然,如果你使用的是未编译版

Delphi访问网页中的下拉菜单

Delphi通过TWebBrowser浏览网页,然后访问该网页中的下拉菜单: uses MsHtml;procedure TForm1.Button1Click(Sender: TObject);var  doc: IHTMLDocument2;  coll: IHTMLElementCollection;  iPos, iIndex: Integer;  selElem: IHtmlSelectElement;  optElem: IHtmlOptionElement;begin  doc :

Android ActionBar中的下拉菜单

在ActionBar中添加下拉菜单,主要有一下几个关键步骤: 1. 生成一个SpinnerAdapter,设置ActionBar的下拉菜单的菜单项 2. 实现ActionBar.OnNavigationListener接口,当点击ActionBar的菜单项是进行相应的操作 3. 调用setNavigationMode()方法将ActionBar的操作模型设置为ActionBar.NAVIGATION_MODE_LIST. 注意:这个步骤应该在Activity的onCreate()回调函数时执行

yii2框架dropDownList的下拉菜单用法介绍

Yii2.0 默认的 dropdownlist 的使用方法.  代码如下 复制代码 <?php echo $form->field($model, 'name[]')->dropDownList(['a' => 'Item A', 'b' => 'Item B', 'c' => 'Item C']); ?> 在yii2中加放请选择的下拉菜单  代码如下 复制代码  <php echo $form->field($model, 'name[]')->

初学者--bootstrap(六)组件中的下拉菜单----在路上(10)

组件---下拉菜单 用于显示链接列表的可切换.有上下文的菜单.下拉菜单的 JavaScript 插件让它具有了交互性. 将下拉菜单触发器和下拉菜单都包裹在 .dropdown 里,或者另一个声明了 position: relative; 的元素.然后加入组成菜单的 HTML 代码.代码与效果如下: <div class="dropdown"> <button class="btn btn-default dropdown-toggle" type=

【网摘】C#.NET 在 MVC 中动态绑定下拉菜单的方法

1. 已知下拉菜单列表项: 在 Controller 控制器类中输入已下代码  1 public class DemoController : Controller 2 { 3     public ActionResult BindDropDownList() 4     { 5         List<SelectListItem> select1 = new List<SelectListItem> 6         { 7             new SelectL

rf中关于下拉菜单的选择

刚才在使用rf模拟QQ注册的时候,遇到了出生年月日等下拉菜单的选择. 之前混迹于rfs群里,经常能见到select from list by value/label 的关键字,所以尝试了一下. 结果不太理想,去社区搜寻了一下,发现这个下拉菜单不是标准的select下拉菜单,所以改用click element关键字,定位到需要的选项就好了. 其实在webdriver里面遇到下拉菜单也是直接定位然后点击的. 在选择的过程中发现年份的下拉菜单比较长,可能要选择的年份在界面不可见的地方,也就是需要下拉滚

安卓微信中bootstrap下拉菜单无法正常工作的解决方案

bootstrap下拉菜单组件描述:http://v3.bootcss.com/components/#dropdowns 问题环境:安卓4.4.2,微信6.2内置浏览器,bootstrap 3.1.1.1 问题描述:bootstrapV3的下拉菜单组件,在ios的微信浏览器中表现正常,但安卓微信浏览器中无法正常触发,安卓非微信浏览器可以触发 问题触发条件:未知 解决方案:去除button元素的属性data-toggle="dropdown",自己另外写一小段事件监听代码来切换div.