从复选框中检索数据 - php

时间:2017-05-31 11:13:19

标签: php mysql

我有一个Choice列表包含4种类型的文章。用户应该做出一个选择。现在,该列表包含45篇文章,我将choice list更改为checkBox list以进行多项选择。

这遵循旧setter函数:

 public function setNature($nature) {
        $this->_nature = $nature;
        if ($nature === 'Production') { $this->_nature='Production';   }
        elseif ($nature === 'A'){ $this->_nature='A';}
        elseif ($nature === 'B') {$this->_nature='B';}
        else $this->_nature ='all';
    }

如何在不写入所有45种文章的情况下更改此setter函数以重新恢复数据?

2 个答案:

答案 0 :(得分:1)

你可以像这样自动寻找允许的性质:

public function setNature($nature) {
    $allowed_nature = ['A','B','Production'];
    if(in_array($nature, $allowed_nature)){
        $this->_nature = $nature;
    }else{
        $this->_nature = 'all';
    }
}

唯一不利的一面是你需要在某个地方存储允许的性质,在这种情况下是一个数组,但它也可以来自你的数据库。

根据您当前的信息,这就是我能做到的!

答案 1 :(得分:0)

<form method='post' id='userform' action='thisform.php'> <tr>
    <td>Trouble Type</td>
    <td>
    <input type='checkbox' name='checkboxvar[]' value='Option One'>1<br>
    <input type='checkbox' name='checkboxvar[]' value='Option Two'>2<br>
    <input type='checkbox' name='checkboxvar[]' value='Option Three'>3
    </td> </tr> </table> <input type='submit' class='buttons'> </form>

<?php 
if (isset($_POST['checkboxvar'])) 
{
    print_r($_POST['checkboxvar']); 
}
?>

希望这有助于

echo implode(',', $_POST['checkboxvar']); // change the comma to whatever separator you want