背景:我正在使用HTML / PHP / MySQL /和Javascript(如果需要)
我所拥有的是大约1000人的列表 - 我想让用户选择人员,然后使用所选人员将他们添加到数据库中。
我在想这个表的每一行都有一个唯一的链接,链接会将那个人添加到一个数组 - 或某种列表 - 然后最后我可以获取该列表并输入它进入数据库..
我真的想知道,当有人点击一个人的名字时 - 它会自动被添加到列表中,比如左手边 - 然后一旦完成,他们就可以提交列表。
如果需要澄清,请告诉我。
感谢您的帮助!
答案 0 :(得分:0)
我会选择:
使用以下内容在表格中以分页方式显示人物:
<table id="people">
<tr>
<td id="<?php echo $person['id']; ?>"><?php echo $person['name']; ?></td>
</tr>
</table>
当有人点击tr时,javascript代码被执行以发送带有id的人的帖子请求。负责处理它的PHP文件将id存储在$_SESSION['selectedPeople']
数组中,或者如果它存在则将其从那里删除。此外,当您单击td时,将切换.selected
类,并更新左侧所选人员列表(例如,通过从PHP文件获取JSON并将其处理以显示在表中)。
a)带你到另一页并提交列表(你有$_SESSION['selectedPeople']
变量)
b)向将处理$_SESSION['selectedPeople']
部分代码:
selectHandler.php:
<?php
if($_POST && isset($_POST['id'])) {
$id = (int)$_POST['id'];
$action = '';
session_start();
if(!isset($_SESSION['selectedPeople'])) {
$_SESSION['selectedPeople'] = array($id);
$action = 'added';
} else {
if(in_array($id, $_SESSION['selectedPeople'])) {
$_SESSION['selectedPeople'] = array_diff($my_array, array($id));
$action = 'removed';
} else {
$_SESSION['selectedPeople'][] = $id;
$action = 'added';
}
}
echo json_encode(array('action' => $action));
}
?>
的Javascript(+ JQuery):
$(function () {
$('#people tr').click(function () {
var id = $(this).children('td[id]').attr('id');
$.post("selectHandler.php", { id: id })
.done(function( data ) {
if(data.action == "added") {
$(this).addClass('selected');
} else if(data.action == "removed") {
$(this).removeClass('selected');
} else {
alert('Some kind of error.');
}
}, "json");
refreshSelectedList();
});
});
我希望你明白这一点。