Php 使用javascript和$_会话通过分页记录想要的用户信息
到目前为止,我有一个分页页面,显示数据库系统中的所有用户。每个页面显示30个用户,每个用户旁边都有一个复选框,我需要的是用户选择和取消选择这些用户的方式,以及这些选择的传播方式,因此,如果用户从第2页返回到第1页,第1页的所有用户仍将被选中 我还需要一种方法来记录这些信息,这样一旦用户查看了所有页面并单击提交表单,所有选中的用户信息都可以被处理。我正在考虑使用javascript来记录信息,并使用php会话来存储信息,但按照我现在尝试的方式,当用户单击复选框时,它不会被勾选 有没有人有更好的方法来解决这个问题 谢谢Php 使用javascript和$_会话通过分页记录想要的用户信息,php,javascript,Php,Javascript,到目前为止,我有一个分页页面,显示数据库系统中的所有用户。每个页面显示30个用户,每个用户旁边都有一个复选框,我需要的是用户选择和取消选择这些用户的方式,以及这些选择的传播方式,因此,如果用户从第2页返回到第1页,第1页的所有用户仍将被选中 我还需要一种方法来记录这些信息,这样一旦用户查看了所有页面并单击提交表单,所有选中的用户信息都可以被处理。我正在考虑使用javascript来记录信息,并使用php会话来存储信息,但按照我现在尝试的方式,当用户单击复选框时,它不会被勾选 有没有人有更好的方法
<script type="text/javascript">
function log_export($str) {
document.check.data.value = $str;
document.check.submit();
}
</script>
<?php
if(isset($_POST['data'])) {
echo $_POST['data'];
}
?>
<form name="check" method = "post" action = "">
<input type="hidden" name="data">
<input type="checkbox" name="A" onclick="log_export('1')" />
<input type="checkbox" name="B" onclick="log_export('2')" />
<input type="checkbox" name="C" onclick="log_export('3')" />
</form>
为什么不更改表单方法以获取并创建分页链接,使其包含传递给表单的每个参数和页码。我认为,通过URL上传递的参数与发布的参数相比,处理这种情况会更加简单 您可以创建如下链接:
for ($i =0; $i < $max_page; $i++){
echo "{$_SERVER['REQUEST_URI']}?$_SERVER['QUERY_STRING']&p={$i}";
您只需将后端更改为使用$\u GET而不是$\u POST即可。实现这一点的方法不多,但我会避免使用javascript。您可以在$\u会话中使用数组跨页面保存列表
<form name="check" method = "post" action = "">
<input type="checkbox" name="person[A]" />
</form>
这样,会话变量saved_列表将包含数组person及其所有复选框。但是,您需要小心不要每次都覆盖数组,因此添加
$_REQUEST['person'] = array_merge($_SESSION['saved_list'], $_REQUEST['person']);
…在此之前,如果我正确地记住了合并函数,应该保留它们
或者,您可以只使用html保存已勾选的复选框。当第2页收到来自第1页的结果时,它可以在第2页表单的末尾将其作为隐藏元素打印出来。通过这种方式,它们可以跨页面存在,但是如果一页有30个名称,这可能会变得有点笨拙
我建议将其存储在php会话数组中,这不应该真正涉及到使用Javascript,这会使事情变得过于复杂
$_REQUEST['person'] = array_merge($_SESSION['saved_list'], $_REQUEST['person']);