从select创建项目列表/数组

creating a list/array of items from select

本文关键字:数组 列表 项目 select 创建      更新时间:2024-01-10

背景:如果需要,我会使用HTML/PHP/MySQL/和Javascript

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

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

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

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

谢谢你的帮助!

我会选择:

  • 创建页面,左侧为较小的列表留出空间,右侧为人员列表留出空间

在表格中显示人员,并使用以下内容进行分页:

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

我希望你明白。