如何在yii2中更新动态字段 [英] How to update dynamic field in yii2
问题描述
我想在不使用任何库的情况下使用 jquery 创建动态字段.我有两个提交的表单,但一个提交 label
我想创建多次,这实际上是一个问题选项,它可以不止一次.
在下面的 form.php 中,您会看到我多次使用 jquery 创建的 label field
.我可以保存它们,但我不明白我将如何显示那些在 update case
中超过一次的归档.真的对不起我的英语.
控制器
公共函数 actionCreate(){$model = new QuestionsOptions();if ($model->load(Yii::$app->request->post())) {if(sizeof(array_filter($_POST['QuestionsOptions']['label'])) > 0){foreach($_POST['QuestionsOptions']['label'] as $key => $row){$model->setIsNewRecord(true);$model->option_id = null;$model->label = $row;$model->save();}}//出口;返回 $this->redirect(['view', 'id' => $model->option_id]);} 别的 {return $this->renderAjax('create', ['模型' =>$模型,]);}}
型号
namespace app\models;使用 Yii;类 QuestionsOptions 扩展 \yii\db\ActiveRecord{公共静态函数 tableName(){返回 'questions_options';}公共函数规则(){返回 [[['question_id', 'label', 'type'], 'required'],[['question_id'], '整数'],[['类型'],'字符串'],[['过时','更新'],'安全'],[['label'], 'string', 'max' =>[255],[['question_id'], 'exist', 'skipOnError' =>真,'targetClass' =>SurveysQuestions::className(), 'targetAttribute' =>['question_id' =>'question_id']],];}公共函数attributeLabels(){返回 ['option_id' =>'选项 ID','question_id' =>'问题ID','标签' =>'标签','类型' =>'类型','过时' =>'日期','更新' =>'更新',];}公共函数 getQuestionsAnswers(){返回 $this->hasMany(QuestionsAnswers::className(), ['option_id' => 'option_id']);}公共函数 getQuestion(){返回 $this->hasOne(SurveysQuestions::className(), ['question_id' => 'question_id']);}}
表单.php
<div class="surveys-questions-form"><?php $form = ActiveForm::begin();?><?phpif(isset($_GET['option_id']) 和 $_GET['option_id'] > 0)$id= $_GET['option_id'];别的$id= $model->option_id;echo $form->field($model, 'question_id')->hiddenInput(['value' => $id])->label(false);?><div class="col-md-6"><div id="question_wrapper"><?= $form->field($model, 'type')->dropDownList([ 'text' => 'Text', 'numbers' => 'Numbers', 'date' =>'Date', 'texarea' => 'Texarea', 'checkbox' => 'Checkbox', 'radio' => 'Radio', 'rating' => 'Rating', ], ['prompt'=> '']) ?><div id="add_more_field"><?= $form->field($model, 'label[]')->textInput(['maxlength' => true]) ?>
<div class="form-group"><?phpecho Html::a('添加更多', 'javascript:void(0);', ['id' =>'调查问题-新按钮','类' =>'拉右 btn btn-primary btn-xs'])?>