Yii2.0 表单相关

属性

文本框: textInput();

密码框: passwordInput();

单选框: radio(),radioList();

复选框: checkbox(),checkboxList();

下拉框: dropDownList();

隐藏域: hiddenInput();

文本域: textarea(['rows'=>3]);

文件上传: fileInput();

提交按钮: submitButton();

重置按钮: resetButtun();

表单控制标签(Label)的几种方式

//默认常规方式
<?= $form->field($model, 'ee_type')->dropDownList(YiiLib::loadDDList()) ?>

// 隐藏标签方式一
<?= $form->field($model, 'ee_type', ['labelOptions'=>['class' => 'hide']])->dropDownList(YiiLib::loadDDList()) ?>

// 隐藏标签方式二
<?= $form->field($model, 'ee_type')->dropDownList(YiiLib::loadDDList())->label(false) ?>

// 隐藏标签方式三
<?= $form->field($model, 'ee_type', ['options'=>['class'=>'hide']])->dropDownList(YiiLib::loadDDList()) ?>


// 修改标签内容
<?= $form->field($model, 'ee_type')->dropDownList(YiiLib::loadDDList())->label('Welcome To <small>YiiLib.com </small>') ?
需要知道把表单加入数据库不成功的时候。

用来看所有的错误
<?php echo $form->errorSummary($model); ?>
<?php
$form = ActiveForm::begin([
	'action' => ['test/getpost'],
	'method'=>'post',
	'id' => 'login-form', //设置ID属性
	'options' => [
	    'class' => 'form-horizontal', //设置class属性
	    'enctype' => 'multipart/form-data' //文件上传时添加该编码
	],
	'fieldConfig' => [
	    'template' => '<div class="form-group"><center><label class="col-md-2 control-label" for="type-name-field">{label}</label></center><div class="col-md-8 controls">{input}{error}</div></div>'
	],  //设置模板的样式
]);

; ?>
// 禁止
<?= $form->field($model, 'number')->textInput(['maxlength' => true,'readonly'=>'true']) ?>

<?= $form->field($model, 'username',['inputOptions' => ['placeholder'=>'请输入用户名','class' => 'ipt'],'template'=>'<div class="form-group"><div class="col-md-8 controls">{label}{input}{error}</div></div>'])->textInput(['maxlength' => 20,"style"=>"width:200px; height:30px;"]) ?>

<? echo $form->field($model, 'username')->hint(\Yii::t('app', 'Staff/Student Number'))->textInput(['maxlength' => 20]) ?>// hint()表单设置默认描述信息

<? echo $form->field($model, 'password')->passwordInput(['maxlength' => 20]) ?>

<? echo $form->field($model, 'sex')->radioList(['1'=>'男','0'=>'女']) ?>

<? echo $form->field($model, 'edu')->dropDownList(['1'=>'大学','2'=>'高中','3'=>'初中'], ['prompt'=>'请选择','value'=>$model->id,'style'=>'width:120px']) ?>// value设置默认值

<? echo $form->field($model, 'file')->fileInput() ?>

<? echo $form->field($model, 'hobby')->checkboxList(['0'=>'篮球','1'=>'足球','2'=>'羽毛球','3'=>'乒乓球']) ?>

<? echo $form->field($model, 'info')->textarea(['rows'=>3]) ?>

<? echo $form->field($model, 'userid')->hiddenInput(['value'=>3]) ?>

<? echo Html::submitButton('提交', ['class'=>'btn btn-primary','name' =>'submit-button']) ?>

<? echo Html::resetButton('重置', ['class'=>'btn btn-primary','name' =>'submit-button']) ?>

<?php ActiveForm::end(); ?>

常用的:

单选列表

<?= Html::listBox('Test[status3]', $model->status, $model::Status(), ['class'=>'form-control']);?>

多选列表

<?= Html::listBox('Test[status4]', $model->status, $model::Status(), ['multiple'=>true, 'class'=>'form-control']);?>

切换开关

<?= Html::checkbox('Test[status5]', $model->status, ['class'=> 'js-switch']);?> <?= Html::checkbox('HabitusTest[status6]', $model->status, ['class'=> 'js-switch']);?>

下拉选择带搜索

<?=Html::dropDownList('Test[status9]', '120000', $model::City(), ['prompt'=>'--请选择--', 'data-placeholder'=>'选择省份...', 'class'=>'chosen-select', 'style'=>'width:350px;', 'tabindex'=>'2']);?>

下拉多选带搜索

<?=Html::dropDownList('Test[status9]', ['120000','110000'], $model::City(), ['multiple'=>true, 'data-placeholder'=>'选择省份...', 'class'=>'chosen-select', 'style'=>'width:350px;', 'tabindex'=>'2']);?>

<?php //表单:Html::beginForm(提交地址,提交方法,属性数组);?>

$form = ActiveForm::begin([
    'action' => ['test/getpost'],
    'method'=>'post',
    ]); ?>

<?=Html::beginForm('','post',['id'=>'form','class'=>'form','data'=>'myself']);?>

<?php //(二)输入框:Html::input(类型,name值,默认值,属性数组;)?>

<?=Html::input('text','test','',['class'=>'form-control','placeholder'=>'hehe']);?>

<?=Html::input('email','email','admin@admin.com',['class'=>'form-control']);?>

<?=Html::input('password','pwd','',['class'=>'form-control']);?>
<?Html::input('hidden','hidden','',['class'=>'form-control']);?>

<hr/>

<?php //Html::表单类型input(name值,默认值,属性数值);?>

<?=Html::textInput('test','hehe',['class'=>'form-control']);?>
<?=Html::textInput('email','admin@admin.com',['class'=>'form-control']);?>

<?Html::passwordInput('pwd','',['class'=>'form-control']);?>
<?Html::hiddenInput('hidden','',['class'=>'form-control']);?>
<hr/>
<?php //(三) 文本域 Html::textarea()?>
<?=Html::textarea('area','',['class'=>'form-control','row'=>'3']);?>

<hr/>

<?php //单选按钮 Html::checkbox(name值,是否选中,属性数组)?>
<?=Html::radio('sex',true,['class'=>'form-control']);?>

<?=Html::radioList('height','1',['1'=>'160','2'=>'170','3'=>'180'],['class'=>'form-control']);?>
<?php //复选框?>
<?=Html::checkbox('haha',true,['class'=>'form-control']);?>
<?php //复选框列表?>
<?=Html::checkboxList('xixi','1',['1'=>'160','2'=>'170','3'=>'180'],['class'=>'form-control']);?>

<?php //下拉列表?>
<?=Html::dropDownList('list','2',['1'=>'160','2'=>'170','3'=>'180'],['class'=>'form-control'])?>

<?=Html::label('显示的','test',['style'=>'color:#ff0000']);?>
<hr/>
<?php //上传控件?>
<?=Html::fileInput('img',null,['class'=>'btn btn-default']);?>
<hr/>
<?php //按钮?>
<?=Html::button('普通按钮',['class'=>'btn btn-primary']);?>

<?=Html::submitButton('提交按钮',['class'=>'btn btn-primary']);?>

<?=Html::resetButton('重置按钮',['class'=>'btn btn-primary']);?>

<?=Html::endForm()?>



Ajax异步验证表单

// 模型规则如下
    public function rules()
    {
        return [
            [['adrs_id', 'onse_id', 'created_at', 'updated_at'], 'integer'],
            [['num'], 'string', 'max' => 20],
            [['vin', 'ein'], 'string', 'max' => 255],
            ['num', 'unique','message'=>'此车牌号已经存在!'],
            ['vin', 'unique','message'=>'此车架号已经存在!'],
            ['ein', 'unique','message'=>'此发动机号已经存在!'],
            [['num', 'vin', 'ein'], 'required'],

        ];
    }


// 控制器方法
    // 异步验证
    public function actionValidateForm ($id = null)
    {

        $model = $id === null ? new Cars() : Cars::findOne($id);
        $model->load(Yii::$app->request->post());

        Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
        return \yii\widgets\ActiveForm::validate($model);
    }
<!-- 表单设置 -->

$validationUrl = ['validate-form'];
if (!$model->isNewRecord) {
    $validationUrl['id'] = $model->id;
}
    <?php $form = ActiveForm::begin([
        'id' => 'form-id',
        'enableAjaxValidation' => true,
        'validationUrl' => $validationUrl,
    ]); ?>

参考: -http://www.yiichina.com/tutorial/341




导航