2017-02-17 4 views
2

Ich habe ein Array von Elementen, die vom Benutzer geändert werden können. Jedes Element in diesem Array kann durch die vereinfachte Zeilen unten bearbeitet werden:PHP-Set bearbeitbare Checkbox-Variable in Array

foreach($items as $item) { 
    <tr> 
     <td><input type="text" value="<?php echo esc_attr($item['name']); ?>" /></td> 
     <td><input type="checkbox" name="" value="" /></td> 
     <input type="hidden" name="items[<?php echo $i; ?>][ischecked]" value="<?php echo esc_attr($item['ischecked']); ?>" /> 
    </tr> 
} 

$item['name'] erfolgreich, werden geändert, was ich frage ist, wie die Checkbox Setup den Wert zu speichern true, wenn das Kontrollkästchen aktiviert ist $item['ischecked']?

+1

Fragen Sie, ob Sie in Ihrer Datenbank '$ item ['ischecked']' als gefüllt haben, wie Sie das Kontrollkästchen aktivieren, wenn Sie das HTML generieren? Wenn ja, kannst du einfach ' /> '. Wenn du das nicht meinst, weiß ich nicht, was du brauchst; Sie müssen in Ihrer Erklärung klarer sein. – Rasclatt

+1

Ich bin auch etwas überrascht, dass die Eingaben Werte ohne 'name' Attribute erzeugen. – Rasclatt

+0

Ja, Sie haben Recht, es ist auch eine verborgene Eingabe mit dem Namen festgelegt, ich habe meinen ursprünglichen Fragecode aktualisiert – grasesed

Antwort

0

Die Verwendung der versteckten Eingabe scheint eher ein Workaround als eine saubere, direkte Lösung zu sein.

Können Sie die folgenden Snippets für Ihre Situation ändern?

foreach($items as $i=>$item){ 
    echo "<tr> "; 
     echo "<td><input type=\"text\" name=\"name[$i]\" value=\"",esc_attr($item['name']),"\" /></td>"; 
     echo "<td><input type=\"checkbox\" name=\"check_name[$i]\" value=\"true\"",(isset($_POST["check_name[$i]"])?" checked":"")," /></td>"; 
    echo "</tr>"; 
    // declare a variable for use in future queries, change/use this as/if needed 
    $check[$i]=(isset($_POST["check_name[$i]"])?"true":"false"); 
} 

Ich habe diese Lösung nicht getestet, also lassen Sie mich wissen, wenn etwas nicht stimmt.

Verwandte Themen