我正在尝试使用javascript append来使用相同模型的多个实例。但是,我不知道该怎么做。因此,我创建了以下代码。
的javascript
var div_input = $('#input');
div_input.append('<input type="hidden" name="'+c+'_round" value="'+c+'" />');
变量“c”是递增的运行数。例如,我第一次追加名称将是“1_round”。第二次将是“2_round”,依此类推。
控制器
$loop = true;
$i = 0;
do{
$i++;
if (!empty($_POST[$i . "_round"]))
{
$round = $_POST[$i . "_round"];
$model->model_round= $round;
$model->save();
}else{
$loop = false;
}
}while($loop);
这里的问题是它总是只保存最后一个数据循环而不是每个数据循环。请帮我解决一下这个。 Yii2新手。谢谢!
答案 0 :(得分:0)
每次循环
时,您必须初始化 $saved_array = [];
$loop = true;
$i = 0;
do{
$i++;
if (!empty($_POST[$i . "_round"]))
{
$model = new model();
$round = $_POST[$i . "_round"];
$model->model_round= $round;
if($model->save()) {
$saved_array[$model->id] = True;
} else {
$saved_array[$model->id] = $model->getErrors();
}
unset ($model);
}else{
$loop = false;
}
}while($loop);
的新实例
即
$saved_array
如果未保存模型,您可以最终分析是否保存模型{{1}}
答案 1 :(得分:0)
为什么不使用输入名称作为数组
<input name="round[]">
然后循环播放
$round = $_POST['round'];
foreach( $round as $key => $n ) {
// code here
}