【问题标题】:Distributing sequential array items as mixed以混合方式分布顺序数组项
【发布时间】:2020-04-07 07:46:19
【问题描述】:

我有一个从 1 到 15 的有序列表。我将这些列表项放在一个表单中,并为每个项分配一个复选框。用户可以从该表单中的项目中选择他想要的任何内容。

当用户填写并发送表单时,我想将此列表分隔在某些标题下。

例如:

<form>
    <input type="checkbox" value="1" name="checklist[]"> Option 1
    <input type="checkbox" value="2" name="checklist[]"> Option 2
    <input type="checkbox" value="3" name="checklist[]"> Option 3 
    <input type="checkbox" value="4" name="checklist[]"> Option 4
    <input type="checkbox" value="5" name="checklist[]"> Option 5
    <input type="checkbox" value="6" name="checklist[]"> Option 6
    <input type="checkbox" value="7" name="checklist[]"> Option 7
    <input type="checkbox" value="8" name="checklist[]"> Option 8
    <input type="checkbox" value="9" name="checklist[]"> Option 9
    <input type="checkbox" value="10" name="checklist[]"> Option 10
    <input type="checkbox" value="11" name="checklist[]"> Option 11
    <input type="checkbox" value="12" name="checklist[]"> Option 12
    <input type="checkbox" value="13" name="checklist[]"> Option 13
    <input type="checkbox" value="14" name="checklist[]"> Option 14
    <input type="checkbox" value="15" name="checklist[]"> Option 15
</form>

根据您选择的结果:

A 类
此类别中的问题:1 - 3 - 4 - 10
您选择了:3 - 4 - 10

B 类
此类别中的问题:2 - 8 - 11 - 14 - 15
您选择了:2 - 8 - 11

C 类
此类别中的问题:5 - 6 - 7 - 9 - 12 - 13
您选择了:5 - 7 - 12 - 13

您能告诉我如何做到这一点吗?

【问题讨论】:

  • 此表单与您的类别有什么关系?
  • @splash58 我尝试根据用户的回答进行分析。我的清单中有不同的问题。用户回答这些问题并给我反馈。每个问题总共大约 3 个类别。但是,我不能重复地从一个类别中提出问题。这会降低测试的可靠性。

标签: php arrays forms


【解决方案1】:

当用户完成表单时,您会在 php 后端收到选项框的 value 语句中的内容。所以对你用 if 语句得到的数组做一个简单的 foreach

【讨论】:

  • 是的,我可以做一个简单的foreach,但我不想按顺序显示选定的。我想把它们分成不同的类别。
  • 使用数组将它们放在不同的类别中,并按照您想要的顺序打印出来
  • 其实我想同时显示该类别的问题和用户选择的答案。我更新了问题,你能检查一下吗?
【解决方案2】:

我通过搜索找到了我提出的问题的答案。对于那些需要帮助的人,我在这里添加。

首先,将每个类别的选项做成一个数组。

$category_A = array (1, 3, 4, 10);
$category_B = array (2, 8, 11, 14, 15);
$category_C = array (5, 6, 7, 9, 12, 13)

然后将这些数组插入到 foreach 循环中,并检查所选选项是否在此数组中。 A 类示例:

foreach ( $category_A as $value ) {

    if ( in_array( $value, $_POST['check_list'] ) ){

        echo '<span class="selected">'. $value .'</span>';

    } else {

        echo '<span>'. $value .'</span>';

    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多