yii2如何创建多个字段?

How create a yii2 multiple fields?

yii2 有问题 我如何处理多个字段? 我的看法一定是这样的link http://bootsnipp.com/snippets/featured/multiple-fields 请谁能举个例子

我认为你应该使用 javascript 创建字段和 php 表单(不使用 yii)。

示例:

Html:

<div class="input">
    <div id="container"></div>
    <span class='add-input' href="#" name="name" onclick='addFields()'>Add</span>
</div>

JS函数:

function addFields(){
    var container_parent = document.getElementById('container');

    var div = document.createElement("div");
    div.name = "div_element";
    container_parent.appendChild(div);

    var new_field = document.createElement("input");
    new_field.name = 'new_name[]';
    div.appendChild(new_field);
}

这里我设置name'new_name[]'为当接收到post数据时,我们使用foreach($_POST['new_name'] as value)获取所有数据

如果创建 select 元素:

function addFields(){
    var container_parent = document.getElementById('container');

    var div = document.createElement("div");
    div.name = "div_element";
    container_parent.appendChild(div);

    var new_field = document.createElement("select");
    new_field.name = 'new_name[]';
    div.appendChild(new_field);
    new_field.innerHTML = '<?php echo $option_items; ?>';
}

这里我添加了由 yii 表单创建的选项值:

$option_items =  $form->dropDownList($model, 'name', $allItems, array('prompt'=>'')); //get dropdownlist by yii
//remove data, just hold option value
$pos = strpos($option_items, "<option");
$rpos = strrpos($option_items, "</option>");
$option_items = substr($option_items, 0, $rpos+9);
$option_items = substr($option_items, $pos, strlen($option_items) - $pos);
$option_items = str_replace("\n", "", $option_items);

或者您可以在以下位置添加选项值:

new_field.innerHTML = '<?php echo $option_items; ?>';

你可以修改得更酷,祝你好运,抱歉我的英语不好:)