我想实现全选复选框(用于多次删除)。
这是我的View脚本:
<input type="checkbox" name="chk_all" id="chk_all" ng-click="checkAll(this)" /> Select All
<table>
<tr ng-repeat="user in allUsers">
<td><input type="checkbox" ng-model="list" name="list[]" class="chk_all" value="{{user.user_id}}" id="{{user.user_id}}" ng-checked="checkedAll" /></td>
<td>{{user.username}}</td>
<td>{{user.fname}}</td>
<td>{{user.lname}}</td>
<td>{{user.mobile}}</td>
<td>{{user.email}}</td>
<td><a title="Edit User" href="#/edit_user/{{user.user_id}}" ><span class="fa fa-pencil"></span></a> | <a title="Delete User" id="" style="cursor:pointer;" ng-click="delete_user(user.user_id)" ><span class="fa fa-trash-o"></span></a></td>
</tr>
</table>
选中后面的"chk_all"
复选框复选框应选中或取消选中。
我想在按钮点击时删除所选用户。所以如何在http post方法上获得选定的用户ID。
脚本编写为:
$scope.testFunction=function(params)
{
$http.post("../admin/users/testFunction",{'params' : params})
.success(function (data, status, headers, config)
{
console.log(data);
alert(1);
})
.error(function(data, status, headers, config){
});
}
控制器功能:
public function testFunction()
{
$data = json_decode(file_get_contents("php://input"));
print($data->params);
}
在testFunction(php函数)中,如何检索选定的用户ID? 有解决方案吗 注意:我用javascript和php完成了它。现在应用程序将转换为Angularjs,因此它应该在angularjs中。
答案 0 :(得分:1)
你可以给对象'user'一个属性:'checked',然后复选框看起来像:<input type="checkbox" name="list[]" class="chk_all" ng-model="user.checked" onclick="uncheck_select_all(this)" />
。然后在提交时,检查allUsers中的每个用户是否user.checked == true,如果是,则将该用户推送到数组。然后将该数组放入您的http帖子中,并为服务器端阵列中的每个用户处理删除。
<强>更新强>
在this plnkr中,我用答案+评论表明我的意思。如果您只是复制粘贴,这不起作用,因为我使用了一些不同的命名。如果你不能用这个捡拾器找出解决方案,我恐怕我尽我所能。注意:您可以使用常规for循环替换angular.forEach循环,以获得稍快的性能。
答案 1 :(得分:0)
Angular Docs中的结帐ng-checked
。
您可以根据$scope
变量为要检查的每个复选框添加表达式。
<input type="checkbox" name="chk_all" id="chk_all" ng-click="checkAll(this)" />
<input type="checkbox" name="chk_1" id="chk_1" ng-checked="checkedAll" />
<input type="checkbox" name="chk_2" id="chk_2" ng-checked="checkedAll" />
<input type="checkbox" name="chk_3" id="chk_3" ng-checked="checkedAll" />
在你的控制器中你会得到这个:
$scope.checkAll = function() {
$scope.checkedAll = true;
}
这会将$scope.checkedAll
变量设置为true,使ng-checked
表达式为true,这将检查使用该表达式的所有复选框。
我也将onchange
属性更改为ng-click
。