在我看来,我可以有一个或多个这样的组合,但是当尝试仅使用一个组合打印用户时, 在我的控制器中我得到了2个
<input type="text" name="User[user_id][]" />
<input type="text" name="User[username][]" />
在我的控制器中:
$count = count(Yii::$app->request->post('User'));// return 2
我检查计数的目的是创建一些用户实例,但由于我无法获得正确数量的创建用户,我无法继续,有人可以启发我。感谢
答案 0 :(得分:0)
您需要将代码更改为:
<input type="text" name="User[0][user_id]" />
<input type="text" name="User[0][username]" />
<input type="text" name="User[1][user_id]" />
<input type="text" name="User[1][username]" />
<input type="text" name="User[2][user_id]" />
<input type="text" name="User[2][username]" />
依旧......
它返回2,因为您在数组的错误维度中创建了user_id
和user_name
。
答案 1 :(得分:0)
您需要使用jQuery和clone()
函数,并在新的克隆字段中自动增加要替换的ID。
JSFiddle: here
<强> HTML:强>
<form id="autoinc-yii2form">
<div id="aiy2-fields">
<div class="aiy2f-user-wrap" data-user-count="0">
<div class="aiy2f-userid-wrap">
User ID: <input type="text" name="User[0][user_id]" class="aiy2-userid" />
</div>
<div class="aiy2f-username-wrap">
Username: <input type="text" name="User[0][username]" class="aiy2-username" />
</div>
</div>
</div>
<button type="button" onClick="return adduser();">Add User</button>
</form>
<强> JQuery的:强>
function adduser() {
var userCount = $("#aiy2-fields .aiy2f-user-wrap:last").data("user-count") + 1;
var cloned = $("#aiy2-fields .aiy2f-user-wrap:last").clone();
cloned.find(".aiy2-userid").attr("name", "User[" + userCount + "][user_id]");
cloned.find(".aiy2-username").attr("name", "User[" + userCount + "][username]")
cloned.attr("data-user-count", userCount);
cloned.appendTo("#aiy2-fields");
return false;
}
答案 2 :(得分:-1)
执行var_dump($ _ POST),你会看到你得到了什么。你有2个密钥的用户数组,这意味着它的长度为2.