我怎么能从一个由复选框组成的表中找到有关所选选项的位置的信息?

时间:2017-03-27 12:18:16

标签: php html checkbox smarty

一些比赛:

我在MySQL的数据库中有三个表,名称是意大利语。

  • “Attivita”(活动)
  • “Ambito”(范围)
  • 两者的关联表称为“Azione”(行动)

“Attività”和“Ambito”每个只有两列:ID和NOME。 “Azione”有三个外键。一个在“Ambito”的ID列上,一个是“Attività”的ID列,另一个是另一个表的ID列,每次按下“提交”按钮时,它会自动递增1并加入其他类型的信息。 我想做的是制作一个表格,用户可以通过选择“Attivit”和“Ambito”的组合来填充che table“Azione”。

我做了什么:

我创建了一个充满检查点的动态表,其中来自“Ambito”表的行和来自“Attività”的列如下所示:

 _ | 1 | 2 | 3 | 4 | 5 |
 a |   |   |   |   |   |
 b |   |   |   |   |   |
 c |   |   |   |   |   |
 d |   |   |   |   |   |

用户可以在其中选择多个复选框,如下所示:

 _ | 1 | 2 | 3 | 4 | 5 |
 a |   |   |   |   |   |
 b |   | x |   | x |   |
 c |   | x |   |   |   |
 d |   | x |   |   |   |

这是Smarty中的tamplate页面和代码页的此表单的代码:

模板:

     <form name="{$formName}" id="inserisciazioni" method="{$formMethod}" action="{$formAction}" class="form_standard">
            <table>
                <tr>
                    <td></td>
                    {section name=attivita loop=$fAttivitaList}
                        <td>{$fAttivitaList[attivita].descrizione}</td>
                    {/section}
                </tr>
                {section name=ambito loop=$fAmbitoList}
                    <tr> 
                        <td>{$fAmbitoList[ambito].descrizione}</td>
                        {section name=attivita loop=$fAttivitaList}
                            <td><input type="checkbox" name="cbamb" class="cbAzione" id="{$servizi[key].nome}" value="{$servizi[key].nome}" /> </td>
                        {/section}

                    </tr>
                {/section}
            </table>
            <input name="{$btnSubmitName}" id="submitBtnInter" type="submit" class="default_submit" value="Invia" />
        </form>

“逻辑代码”页面:

$listATT = new AttivitaList($db);
$listaAttivita = array();
for ($listATT->start(); !$listATT->isAfter(); $listATT->forth()) {
$rt = array('id' => $listATT->item()->getId(), 'descrizione' => $listATT->item()->getNome());
$listaAttivita[] = $rt;
}
$smarty->assign("fAttivitaList", $listaAttivita);

$listAMB = new AmbitoList($db);
$listaAmbito = array();
for ($listAMB->start(); !$listAMB->isAfter(); $listAMB->forth()) {
$rt = array('id' => $listAMB->item()->getId(), 'descrizione' => $listAMB->item()->getNome());
    $listaAmbito[] = $rt;
}
$smarty->assign("fAmbitoList", $listaAmbito);

我想做什么:

我想通过查找有关“Ambito”行和“Attivita”列的位置信息,找到一种方法来了解表的哪些复选框以及哪些复选框没有被选中。

因此,我可以在“Azione”中添加尽可能多的行,因为选择了许多复选框。

1 个答案:

答案 0 :(得分:1)

通过2 custom attributerowcolumn保留在以下复选框中:

<td><input type="checkbox" name="cbamb" class="cbAzione" data-row="1" data-col="1" id="{$servizi[key].nome}" value="{$servizi[key].nome}" /> </td>

此处data-row, data-col中包含动态值。您可以使用常见的classattr()data()选择器来获取它们,例如:

$('.cbAzione').attr('data-row');
$('.cbAzione').attr('data-col');

代表选择,您可以执行任何操作。