我有一个包含39个复选框的页面。我的示例中的复选框类似于表单名称。我的问题是,有39个复选框,我需要一种方法来存储给学生的表格。目前我设置的是每个表单都用逗号和引号分隔,这样当运行报表时,管理员可以使用CSV下载选项和学生收到的表格组。这有效,但非常简陋,并且在每个表单名称之前都会产生一个不好的副作用,因为mysql会转义引号。
这就是我目前所拥有的:
if ($this->input->post('action') == 'additional') {
$givenforms = "";
foreach ($this->input->post('form') as $forms) {
$givenforms .= ', "' . $forms . '"';
}
$comments = 'This student was given' . $givenforms . '';
if (($this->input->post('action') == 'additional') && ($this->input->post('other') == 'OTHER')) {
$comments .= ', '.$this->input->post('counselorcomments');
}
}
再次在数据库中,结果将如下:这名学生被给予“xyz”,“eoe”,“wwo”,
我几乎需要关于如何存储学生表格的想法,如果需要,如果所有39个表格都交给学生,我需要存储学生所有表格以供以后报告。 (即使不给出39种形式)
答案 0 :(得分:1)
听起来你需要一个:学生和表格之间的很多关系。可能想对这个话题做一点研究。
我认为在数据库中的单个字段中存储逗号分隔值通常是一种非常差的形式,如果你这样做,它几乎总是表示你需要(至少)另一个表。
答案 1 :(得分:0)
使用CSV重构我所获得的一两个小时的回报相当不错。我对知道信息的报告/分析可能性以及我现在存储它的方式非常满意。
为任何其他人寻找做这样的事情的代码片段代码! :
if ($this->form_validation->run() == FALSE) { // This stuff is self explanatory RT(F)M if you will :)
$this->cont();
} else {
$this->load->model('queue_model'); // Load model
$session = $this->uri->segment(3); // Gets the session id
$counselor = $this->session->userdata('username'); // I get counsellor names from the username they log in by joining between the two tables
if ($this->input->post('action') == 'Additional') { // If additional forms is checked do the following
foreach ($this->input->post('form') as $form_id) { // for each form submitted take the session Id from above and insert it into the table forms with the foreach $form_id variable
$this->queue_model->forms($session, $form_id);
}
if (($this->input->post('action') == 'Additional') && ($this->input->post('addother') == 'addotherinfo')) { // If forms were submitted and a addotherinfo was [checked] add comments
$comments = ''.$this->input->post('action'). ' - '.$this->input->post('counselorcomments').'';
} else {
$comments = $this->input->post('action');
}
}
同样添加表单表(带有ID和表单名称)允许我动态地创建这样的复选框:
<?php
foreach ($elevennine as $form) { ?>
<label id="form"><input type="checkbox" name="form[]" value="<?php echo $form['form_id'] ?>" <?php echo set_checkbox('form', $form['form_id']) ?>><?php echo $form['forms'] ?></label>
<?php }
?>
感谢所有好主意!