この記事では、yii2 の ActiveForm フォームの使用方法を紹介します。参考になる内容です。困っている方は参考にしてください。お役に立てれば幸いです。
現在のプロジェクトはフロントエンドとバックエンドの分離モードではなく、PHP の yii2 フレームワークを使用しているため (すべての HTML コードと js はほとんど .php ファイルに埋め込まれているため、追加または送信されます) [Inkjet... .]))、フロントエンドで使用する必要がある yii2 ウィジェットを整理します (フロントエンドに PHP の書き込みエラーやスタイルの問題が含まれる場合は、アドバイスをお願いします)
シナリオを使用してフォームを使用してみます
基本的な登録呼び出しウィジェット
//首先注册activeForm小部件,并赋值给$form(php中的声明变量方法用$ 等价于js中的var let) //begin 标志小部件开始 'login-form', //声明小部件的id 即form的id //声明需要添加的属性 ,例如class , data-x等 'options' => ['class' => 'form-horizontal'], ]) ?> //注册完小部件后可以在 activeForm小部件声明块中调用小部件的方法 = $form->field($model, 'password')->passwordInput() ?> //::end标识小部件结束
1. まず、activeForm の基本的なメソッドをいくつかリストします:
カスタム入力ボックス: input( );
テキスト ボックス:textInput();
パスワード ボックス:passwordInput();
ラジオ ボタン:radio(),radioList();
チェックボックス: checkbox(), checkboxList();
ドロップダウンボックス:dropDownList();
複数選択リスト: listBox();
隠しフィールド: hiddenInput();
テキストエリア: textarea(['rows'=>3]);
ファイルのアップロード: fileInput();
ウィジェット拡張子 field($model , 'username')->widget(\yii\widgets\MaskedInput::className(), ['mask' => '9999/99/99',]); ?>
2. 以下では、各メソッドの基本的な呼び出しを 1 つずつ説明し、必要なもの (メソッドのタイプ) をカスタマイズする方法を説明します。 inputタグは上記各メソッドのinputの前に記述します)
'login','class'=>'login'])?> = $form->field($model, 'username',[ 'options'=>[],//数组里面可以设置自需属性 // template 为字符串模板可自定义模板 , // 其中 {label} {input} {hint} {error} 存在是会调用对应封装好的html模板 当然你也可以不写这样就不会生成yii2内置小部件模板 'template' => '{label} {input} {hint} {error}', // 以下三个分别可以设置label ,input ,hint,error的属性(都是选填项) // 其中如果后面有使用->input...,label(...)等将会将这些里面的配置合并值对应的xxxOptions 内 'labelOptions' => [ 'class'=>'需要在label上添加的类名' //....其他属性集 ], 'inputOptions' => [], 'hintOptions' => [], 'errorOptions' => [], ])->textInput([ // 在options数组内可以设置任意属性 'class'=>'testClass', 'value'=>'测试' ])->hint( // 设置提示内容,当只有一个参数切为false(boolean)用于显示提示的标签 'Please enter your name', [ // 设置任意属性 'class' => 'testHint' ])->label( // 设置label显示内容,当只有一个参数切为false(boolean)label标签将不会被渲染 'Name', [ // 设置任意属性 'class' =>'testLabel' ])->error([ // 任意属性,当只有一个参数切为false(boolean)用于显示错误的标签 'class'=>'errors' ]) ?> = $form->field($model, 'username')->input( // input内只允许放置两个参数即[type ,options] 'email',//该处为指定type="xxxx"的input类型 ['class'=>'tests','value'=>'值']//可在内部定义任何属性 ) ?>
2.2 ラジオ ラジオ ボタン シリーズ
'login','class'=>'login'])?> = $form->field($model, 'username')->radio([ // 隐藏域中的值 'uncheck' =>'test1', // 定义lebal的内容 'label' =>'test', // label上的任意属性 'labelOptions'=>[ 'gs'=>'test' ] ],false)?> = $form->field($model, 'username')->radioList([ '0'=>'a', '1'=>'b', '2'=>'c' ],[ // tag声改变 class="radio"的父级标签 若tag设置为h3 // 则// => 转为//
// // //'tag'=>'h3', // 未选择是默认提交的值 'unselect'=>'1', // 如果设置了item选项,则忽略此选项 'encode'=>false, // 每个单选块之间的内容 写的是什么字符串输出就什么字符串 'separator'=>'', // 定义在每个input单选按钮上的属性 'itemOptions'=>[ 'tess'=>'jzq' ], //可调用的回调,可用于自定义与$Item中单个项对应的HTML代码的生成。此回调的签名必须是:函数($index、$Label、$name、$check、$value), //其中$index是整个列表中单选按钮的基于零的索引;$Label是单选按钮的标签;$name、$value和$check表示单选按钮输入的名称、值和选中状态。 'item'=>function($index, $label, $name, $checked, $value){ // 这块跟encode是在下才疏学浅暂时还未明白啥子用处,待弄明白后在补上,若有码友知晓这块具体作用用法,希望不吝赐教,感激 // echo $index, $label, $name, $checked, $value; }, // 除此yii2有规定属性之外还可自定义任意属性 且上述属性均不是必填 ])?>// // // //// //ログイン後にコピー2.3 チェックボックス複数選択ボックス シリーズ
'login','class'=>'login'])?> = $form->field($model, 'username')->checkbox([ // 隐藏域中的值 'uncheck' =>'test1', // 定义lebal的内容 'label' =>'test', // label上的任意属性 'labelOptions'=>[ 'gs'=>'test' ] ],true)?> = $form->field($model, 'username')->checkboxList([ '1'=>'篮球', '2'=>'足球', '3'=>'游戏', '4'=>'读书' ],[ // tag声改变 class="radio"的父级标签 若tag设置为h3 // 则// => 转为//
// // //'tag'=>'h3', // 未选择是默认提交的值 'unselect'=>'1', // 如果设置了item选项,则忽略此选项 'encode'=>false, // 每个单选块之间的内容 写的是什么字符串输出就什么字符串,建议如无特殊情况 请忽视该字段 // 'separator'=>',', // 定义在每个input单选按钮上的属性 'itemOptions'=>[ 'tess'=>'jzq' ], // 用于替换html指向函数后若不做操作将会输出空 // 'item'=>function($index, $label, $name, $checked, $value){ // 这块跟encode是在下才疏学浅暂时还未明白啥子用处,待弄明白后在补上,若有码友知晓这块具体作用用法,希望不吝赐教,感激 // echo $index, $label, $name, $checked, $value; // }, // 除此yii2有规定属性之外还可自定义任意属性 且上述属性均不是必填 ])?>// // // //// //ログイン後にコピー2.4 ドロップダウン リストの選択シリーズ
#2.5 ウィジェット'login','class'=>'login'])?> = $form->field($model, 'username')->dropDownList([ // 二维数组直接回报上组标签 'test'=>[ '1'=>'篮球', '2'=>'足球', ], '3'=>'游戏', '4'=>'读书' ],[ // 设置下拉列表的默认请选择选项 'prompt'=>[ 'text' => '请选择', 'options' => ['value' => 'none', 'class' => 'prompt', 'label' => 'Select'] ], 'encode'=>false, // 对select option的设置条件以及更改内容 'options'=>[ // 设置禁止选择项 '2' => ['disabled' => true], //替换或者追加指定key的内容,实际上原内容还在只是假设了 label 属性 和显示了 label的属性值 '4' => ['label' => 'value 2'], ], 'encodeSpaces'=>true // 除此yii2有规定属性之外还可自定义任意属性 且上述属性均不是必填 ])?>ログイン後にコピー上記はこの期間中に使用されています。簡単な概要です。使用上の間違いがある場合は、いくつかのヒントを教えてください。'login','class'=>'login'])?> = $form->field($model, 'username',[ 'template'=>'test
{label} {input} {error}' ])->widget(\yii\widgets\MaskedInput::className(), [ // 指定input类型 // 'type'=>'time', // 指定必须输入的类型 'mask' => '999-9999-9999', 'options'=>['class' => 'form-control test'] ]); ?> = $form->field($model, 'verifyCode')->widget(Captcha::className(), [ 'captchaAction' => 'login/captcha', 'options' => [ 'class' => 'two', 'id'=>'two', 'placeholder' => '请输入验证码', ], 'template' => '{input}{image}', 'imageOptions' => [ 'alt' => 'images', ] ])?> --------------------- 最后一个并未实测 ------------------------------- = $form->field($model, 'username')->widget('WidgetClassName', [ // configure additional widget properties here ]) ?>ログイン後にコピー以上がyii2のActiveFormフォームの使い方の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。