Php 如何在页面上重新填充复选框?

Php 如何在页面上重新填充复选框?,php,checkbox,populate,Php,Checkbox,Populate,我有一点奇怪/独特的情况,我目前正在寻找一种方法来“重新填充”我页面上的复选框 首先介绍一下页面/应用程序的工作原理 1.)状态1:您可以获得简单的搜索表单。输入第一个或最后一个或状态等,点击提交。 它查询数据库并发回同一页面(?mode=results) 在主容器DIV中,我循环遍历返回的记录,并创建(回显)一个具有特定表格布局的表,以解析每个记录/行的值(名称、日期、ID#等) 如果我有5条从DB返回的记录,我将循环并创建5个表,每个表都使用记录/行中的唯一数据填充 在这些表中的每一个表中,

我有一点奇怪/独特的情况,我目前正在寻找一种方法来“重新填充”我页面上的复选框

首先介绍一下页面/应用程序的工作原理

1.)状态1:您可以获得简单的搜索表单。输入第一个或最后一个或状态等,点击提交。 它查询数据库并发回同一页面(?mode=results)

在主容器DIV中,我循环遍历返回的记录,并创建(回显)一个具有特定表格布局的表,以解析每个记录/行的值(名称、日期、ID#等)

如果我有5条从DB返回的记录,我将循环并创建5个表,每个表都使用记录/行中的唯一数据填充

在这些表中的每一个表中,我都创建了数据库记录/行中的数据。我还创建/添加了几个复选框

使用一些jQuery和on$(document).ready,我为所有这些复选框列出了onClick事件。因此,单击时,我从复选框中获取一些数据以及一些家长信息,并执行以下操作:

a、 )我在舞台上创建/添加了另一个元素
b、 )对外部.php脚本进行Ajax调用,这样我就可以用我构建的数组更新会话(收集所有用户检查/输入)

我在JS/jQuery中构建了这个数组,并使用Ajax调用将这些数据输入到我的PHP会话中(任何人都知道不使用这个external.PHP脚本来更新会话变量的方法,请告诉我!)

到目前为止,要重新设置上限:没有“表单”(标记),只需在多个表中选中复选框即可。实际上,没有一个按钮(提交)事件一次将所有复选框数据发布到任何位置。每次单击(或取消单击)复选框时,我都会更新会话数组。如果/当用户准备“签出”(因为缺少更好的术语)(离开页面转到另一个页面),会话数据/数组是“最新”的,并且该数据可以在任何后续页面上使用

到目前为止,上面发布的一切都很好

我的问题是:如果用户想返回此主页并显示所有复选框,我必须重新填充所有这些复选框,有什么好的、简单的/优雅的解决方案

我认为我唯一的方法是在主页加载时检查这个会话数组是否存在(这意味着这是一次重新访问,不是第一次),并尝试循环通过这个数组,以某种方式在我的阶段上找到正确的表,然后检查复选框ID

通常使用jQuery来遍历DOM,而不是PHP? 用PHP切换复选框怎么样


有什么好办法吗?

我真的看不出你有什么问题。我概述:

  • 您有一个包含来自数据库的多个
    的页面(1行=1
  • 在这些表格中有复选框
  • 单击复选框时,执行ajax调用以在会话中保存单击的复选框
  • 您的问题是:当页面上再次出现使用时,如何重新填充复选框
我想你已经有了答案:只需使用会话中存储的内容。构建
和复选框时,测试它们是否处于会话中:

<input type="checkbox" <?php if (!empty($_SESSION['blabla'][$myCurrentCheckboxID])) echo 'checked'; ?> />

谢谢你的建议。。这就是我最终的成功之处(到目前为止)

函数sessionCheck($recordID,$checkBoxID){
对于($r=0;$r
我的项目的用法如下:

 <?=sessionCheck($row["id"] ."-A","Testimonial History") ?>


文字的神圣之墙。。。请尽量将此问题简化为您正试图解决的问题。问题“已发布”,但是如果没有背景摘要,您可以将其置于上下文中。(无论如何,谢谢)那是我目前的思考过程。。但是checkboxID并不是唯一的。。。它们是那张桌子上独一无二的。。。但是其他的桌子完全一样。。唯一的区别是表具有唯一的ID。。。根据您的建议,它不会打开/选中id为(比如):article的任何/所有复选框吗?更不用说它是我会话中保存的数组了。。不仅仅是单个变量/值。。我在数组中又添加了3个值,希望它们能帮助我最终找到如何重新选中前面的复选框。。这是我正在构建的阵列结构。。并最终将此数组保存到我的会话中..userPicks.push({recordid:resultsID,orderid:orderid,checkboxid:TargetTeckBox,casename:casename,fullname:fullname,trialdate:trialdate,citystate:citystate,原告:原告,itemsordered:itemsordered=[{name:itemOrdered,price:itemPrice}]});我觉得我需要“向后”做这件事还是什么?运行数组,然后设置复选框。。与其在解析时尝试检查checked状态(如在您的示例中),否则我将有一些运行for循环的长php代码段..等等。。在每个复选框元素中?
 <?=sessionCheck($row["id"] ."-A","Testimonial History") ?>