gpt4 book ai didi

javascript - 从 select 创建项目列表/数组

转载 作者:行者123 更新时间:2023-11-30 00:59:01 24 4
gpt4 key购买 nike

背景:如果需要,我正在使用 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 的 POST 请求。负责处理此问题的 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();
});
});

我希望你能明白。

关于javascript - 从 select 创建项目列表/数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20305868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com