我正在使用这个PHP设置一个表单,循环遍历用户可能拥有的所有记录:
<?PHP foreach ($items as $row): ?>
<tr>
<td>
<?PHP echo form_hidden('id', $row->id); ?>
</td>
<td>
<?PHP echo '<strong>' . $row->name . '</strong>'; ?>
</td>
<td>
<?PHP echo form_input('number', $number); ?>
</td>
<td>
<?PHP echo form_input('registry', $registry); ?>
</td>
<td>
<?PHP echo form_checkBox('OK', $ok, $ok); ?>
</td>
</tr>
<?PHP endforeach; ?>
这给了我一个表格如下:
这里的想法是每行属于数据库中的唯一ID /行,我想允许用户使用单个提交按钮在同一页面/表单上编辑所有内容.
实现这个的最佳方法是什么?
提交此数据时,应该有一种循环遍历控制器中每个信息包(来自每个用户)的方法.这会通过ajax / json完成吗?
解决方法:
这不使用codeigntier,但在尝试使用CI来快捷此过程之前,您应该熟悉一般技术. Codeigniter将帮助您呈现表单元素,执行验证,转义输入和执行查询 – 但如果您了解所涉及的基本原则,它只会帮助您(做任何事情).希望这可以帮助
MARKUP
<form action="/process.PHP">
<div>
<h2>GORDON</h2>
<input type="text" name="user[1][number]" /> <!-- The number corresponds to the row id -->
<input type="text" name="user[1][registry]" />
<input type="checkBox" name="user[1][ok]" value="1" />
</div>
<div>
<h2>ANDY</h2>
<input type="text" name="user[242][number]" />
<input type="text" name="user[242][registry]" />
<input type="checkBox" name="user[242][ok]" value="1" />
</div>
<div>
<h2>STEWART</h2>
<input type="text" name="user[11][number]" />
<input type="text" name="user[11][registry]" />
<input type="checkBox" name="user[11][ok]" value="1" />
</div>
<input type="submit" />
$users = $_REQUEST['user'];
foreach ($users as $rowId => $info){
// YOU SHOULD MAKE SURE TO CLEAN YOUR INPUT - THIS IS A GUESS AT WHAT YOUR DATA TYPES MIGHT BE
$id = (int) $rowId;
$number = (int) $info['number'];
$registry = MysqL_real_escape_string($info['registry']);
$ok = (int) ($info['ok']);
$q = "UPDATE user SET number = $number, registry = '$registry', ok = $ok WHERE id = $id";
MysqL_query($q);
// You may want to check that the above query was sucessful and log any errors etc.
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。