我有一个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函数以重新恢复数据?
答案 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