我使用PHP中的网页显示表中的所有记录。我想为所有行添加复选框,用户可以选中一个复选框来选择一行然后提交页面。提交页面时,我想枚举所有复选框并检查它们是否被选中,我该怎么做?枚举PHP中的所有复选框
1
A
回答
2
创建表单
您可以生成HTML如下:
<form [action, method etc]>
<table>
<?php
foreach($dataSet as $dataRow) :
?>
<tr>
<td>
<input type="checkbox" name="dataRow[]" value="<?=$dataRow['id']?>"/>
</td>
[Additional details about datarow here]
<tr>
<?php
endforeach;
?>
</table>
</form>
完成POST
直视$ _ POST [ '数据行']:这将是一个数组,其值为$ dataRow的IDS,因此使用array_values对$ _POST ['dataRo W']会给你所选行的所有ID:
<?php
$checkedRows = array_values($_POST['dataRow']);
foreach($checkedRows as $row) {
// Do whatever you want to do with the selected row
}
5
您将创建您的复选框是这样的:
<input name="rows[]" value="uniqueIdForThisRow" type="checkbox" />
<input name="rows[]" value="anotherId" type="checkbox" />
然后你可以通过他们循环是这样的:
<?php
// $_POST['rows'] contains the values of all checked checkboxes, like:
// array('uniqueIdForThisRow', 'anotherId', ...)
foreach ($_POST['rows'] as $row) {
if ($row == 'uniqueIdForThisRow') {
// do something
}
}
?>
PHP docs on dealing with forms,特别参见实施例#3。
1
如果选中它们,则不必检查所有复选框。因为只有successful controls被发送到服务器。复选框只有在检查时才会成功:
复选框(和单选按钮)是可以由用户切换的开/关开关。当控件元素的checked属性被设置时,开关处于“on”状态。提交表单时,只有“开启”复选框控件才能成功。
所以你只需要看看你在请求中得到的复选框。如果您想使用<select multiple>
,请在PHP FAQ中查看How do I get all the results from a select multiple HTML tag?。
0
如果我是你......我不会为改变html表格结构而战。 你可以使用Javascript框架来处理这个问题,比如JQuery这对你来说是非常有效的解决方案。你只处理几行JS代码,你不需要夸大html输出(我猜它可能足够长)。关于jquery,如果你从未使用过,有一个名为visual jquery的好源代码。
这里是如何做到这一点。 你不需要在循环内编辑。你只需要在你的表格标签上加一个id即可。 然后在里面添加新的列到你的表格中。 然后你可以得到复选框的值&将它们序列化为一个隐藏的输入。或者您可以使用ajax轻松处理选定的行。我认为JS框架会更好。
通常我已经添加了许多链接到帖子,但它表示它不允许新用户。
相关问题
- 1. 数据绑定枚举复选框C#
- 2. 枚举值复选框C#MVC
- 3. 多个复选框和枚举
- 4. 选中所有复选框
- 5. 有重复的枚举值
- 6. 抽象枚举选择框
- 7. 列表框与基于枚举的复选框
- 8. 将复选框绑定到int数组/ MVC中的枚举
- 9. 如何从所有枚举类型中排除某些枚举
- 10. 选择所有选中的复选框
- 11. 如果所有复选框都选中,选中所有复选框
- 12. 复选框在HeaderTemplate中选择ItemTemplate中的所有复选框
- 13. 枚举所有IEnumerable事件
- 14. 枚举Mozilla中的所有属性JSAPI
- 15. 枚举Mathematica中的所有分区
- 16. 枚举resx中的所有字符串
- 17. NSArray中枚举的所有值?
- 18. Jquery选中一个复选框时选中所有复选框
- 19. PHP RegEx删除所有复选框
- 20. WPF C# - 绑定枚举到组合框,但不使用所有枚举值
- 21. 绑定标志枚举包含列表框复选框
- 22. 获取枚举标志的所有枚举名称
- 23. 选择Django中的所有复选框
- 24. 选择AngularJS中的所有复选框
- 25. 选择jquery中的所有复选框
- 26. 选择angularJS中的所有复选框
- 27. 选择CheckBoxList中的所有复选框
- 28. 选择div中的所有复选框
- 29. 选择jQuery中的所有复选框
- 30. 如何使用SPARQL列出所选枚举的所有元素?
点击帮助图标:http://stackoverflow.com/editing-help – deceze 2009-07-04 13:00:55