2017-05-31 9 views
1

私はChoiceリストに4種類の記事を含んでいます。ユーザーは1つの選択肢を取る必要があります。今やリストには45の記事が含まれており、choice listcheckBox listで複数の選択肢に変更しました。私は記事のすべての45種類を記述せずにデータをrecovreするために、この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'; 
    } 

:古いsetter機能次

これ?

答えて

1

あなたがそうのような許可性質を探して自動化することができます:唯一のマイナス側は配列になりますが、それは可能性があり、この場合には、あなたがどこかに許さ性質を保存する必要があるということです

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

をあなたのデータベースからも。

あなたの現在の情報に基づいて、これは私が作ることができるものです!

+0

を支援に有用な答えをいただき、ありがとうございます。はい、事実45記事は私のデータベースのテーブルに保存されます。 – Nazly

+1

それらを取得した場合は、配列で設定することができます。そのため、再度更新する必要はありません。カンマで区切ったネーチャーのリストを使用するだけです。このコードは機能します。 – FMashiro

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 
+0

これは、これがセッターを編集して45以上のelseifを持つのを防ぐ方法を説明できますか? – FMashiro

+0

あなたは正しいです、申し訳ありません。私は質問を理解していませんでした。 –

+0

問題はありませんが、これはOPが配列などに入れるために一度すべての名前を取得するのに役立ちます:) – FMashiro

関連する問題