2017-05-31 3 views
1

Ich habe eine Choice Liste enthalten 4 Arten von Artikeln. Der Benutzer sollte eine Wahl treffen. Jetzt wird die Liste enthalten 45 Artikel und ich änderte die choice list durch eine checkBox list für mehrere Möglichkeiten.Abrufen von Daten aus der Checkbox - php

Dies folgt der alte setter Funktion:

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'; 
    } 

Wie kann ich diese Setter-Funktion ändern, um die Daten recovre ohne schreiben alle 45 Arten von Artikeln?

Antwort

1

Sie könnten automatisieren die Suche erlaubt Naturen wie so:

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

Der einzige negative Seite ist, dass Sie die erlaubten Naturen irgendwo, in diesem Fall speichern müssen, die ein Array sein würde, aber es könnte sein, von Ihrer Datenbank auch.

Basierend auf Ihren aktuellen Informationen, das kann ich daraus machen!

+0

Vielen Dank für die hilfreiche Antwort. Ja effektiv sind die 45 Artikel in der Tabelle in meiner Datenbank gespeichert. – Nazly

+1

Wenn Sie sie abrufen, können Sie sie in einem Array festlegen, so dass Sie nie wieder aktualisieren müssen, verwenden Sie einfach eine durch Komma getrennte Liste von Naturen, und dieser Code funktioniert. – 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']); 
} 
?> 

this helps

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

Kannst du mir erklären, wie dies verhindern würde, dass er den Setter bearbeitet, um über 45 elsifs zu haben? – FMashiro

+0

Sie haben Recht, sorry ich habe die Frage nicht verstanden –

+0

Kein Problem, aber das könnte OP helfen, alle Namen einmal in ein Array oder etwas zu setzen :) – FMashiro