1

我有一个包含大约 50 个输入复选框的页面,其中

name="form[]"

我需要我的 php 脚本能够遍历所有复选框,并且检查和提交哪些复选框我需要放入一个变量中,以便我可以存储给定的表单。

这是我的循环:

if ($this->input->post('action') == 'additional') { // Checks if radio button was checked
    foreach ($this->input->post('form') as $forms) { // If above ^^^ is true loop through form[] 
        $givenforms = ', '.$forms.''; // What ever form[] is in the array assign them to the givenforms variable
    }
    $comments = 'This student was given'.$givenforms.''; // The comment I want to store in the database
}

这有效,但仅适用于一种形式(复选框)。如果由于某种原因我的客户需要给学生所有 50 份表格,我想要 $comment = 'This student was given ......................... ......................(所有 50 种表格)'

任何链接或提示将不胜感激。

4

2 回答 2

4

您使用=而不是 concatenating覆盖每次迭代中的值.=,但我相信您可以将implode其用于您的用例:

if ($this->input->post('action') == 'additional') { // Checks if radio button was checked
    $givenforms = implode(', ', $this->input->post('form'));
    $comments = 'This student was given'.$givenforms;
}
于 2013-04-06T17:55:03.380 回答
1

$givenforms = ', '.$forms.'';是错误的,因为每次循环运行都会覆盖前一个。
使用.=(连接运算符) 而不是=.

还要确保在使用$givenforms = "";连接之前通过在循环外使用来设置变量$givenforms .= ...........

如果您不这样做,您将收到警告(或通知,不确定)。

于 2013-04-06T17:55:35.560 回答