从select创建列表/数组

时间:2013-11-30 21:29:49

标签: javascript php html mysql

背景:我正在使用HTML / PHP / MySQL /和Javascript(如果需要)

我所拥有的是大约1000人的列表 - 我想让用户选择人员,然后使用所选人员将他们添加到数据库中。

我在想这个表的每一行都有一个唯一的链接,链接会将那个人添加到一个数组 - 或某种列表 - 然后最后我可以获取该列表并输入它进入数据库..

我真的想知道,当有人点击一个人的名字时 - 它会自动被添加到列表中,比如左手边 - 然后一旦完成,他们就可以提交列表。

如果需要澄清,请告诉我。

感谢您的帮助!

1 个答案:

答案 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']

的页面发送ajax调用

部分代码:

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();
    });
});

我希望你明白这一点。