2016-07-05 10 views
0

Ich versuche, eine Schüler Anwesenheitstabelle erstellen, die eine Checkbox für jede Schüler Anwesenheit enthält, die in einer Datenbank gespeichert werden soll.Erstellen Sie mehrere Kontrollkästchen php

Das ist meine Tabelle, die ich bisher habe, die von einem Ajax-Funktionsaufruf ausgeführt wird. Die meisten Daten stammen aus einer Datenbank, die Namen von Schülern enthält.

Aus Gründen der diesem Beispiel $numStudent = 5;

echo '<form method="post" action="checkAttend.php"> 
    <table border="1">'; 
$count = 1; 

while(($count < $numStudent) && ($students = mysqli_fetch_assoc($result))) { 
    echo '<tr> 
     <th>' . $count. '</th> 
     <th>' . $students['student_name'] . '</th> 
     <th> <input type="checkbox" name="students[]" /> </th> 
    </tr>'; 
    $count++; 
} 

echo '<th colspan = "3"> 
    <input type="submit" name="button" id="button" value="Submit" /> </th>'; 
echo '</table>'; 
echo '</form>'; 

In checkAttend.php Die Form druckt genau so, wie ich brauche es, aber wenn ich versuche, aus den Werten in der Checkbox Array zu drucken (zu überprüfen, welche Werte sind darin enthaltenen, bevor sie in die Datenbank) jeder Wert im Array druckt Speicher:

$student_attend[0]  A 
$student_attend[1]  r 
$student_attend[2]  r 
$student_attend[3]  a 
$student_attend[4]  y 

Normalerweise mag ich speichere eine Art von Wert im entsprechenden Feld in der Datenbank, um anzuzeigen, wenn der Student nicht vorhanden ist oder nicht.

Ich kann nicht sagen, ob ich die Checkbox-Schleife richtig mache oder nicht oder wenn ich mehr Sachen hinzufügen muss.

Antwort

0

Wenn Sie dynamische Daten mit Ihrem Kontrollkästchen hinzufügen möchten, dann können Sie es wie folgt: Innerhalb des Formular-Tag Sie

<form method="post" action="checkAttend.php"> 
    <table border="1"> 
    <?php 
    $count=1; 
    while($students = mysqli_fetch_assoc($result)) { 
    ?> 
    <tr> 
     <th><?php echo $count;?></th> 
     <th><?php echo $student['student_name']; ?></th> 
     <th><input type="checkbox" name="students[]" value=<?php echo $student['student_id']; ?>/></th> 
    </tr> 
    <?php 
    } 
    ?> 
</table> 
</form> 

und in checkAttend.php Seite schreiben Sie den folgenden Code verwenden:

if(isset($_POST['button'])){ 
    if(count($_POST['student_id'])>0){ 
    foreach($_POST['student_id'] as $student_id){ 
    mysql_query("update table_name set column_name = '1' where student_id = '".$student_id.'"); 
    // Just use the student id as checkbox value and update it as you just need the check or uncheck the checkbox. 
    } 
    } 
} 
1

Sie werden durch die $student_attend Array wie die folgende Schleife wollen:

foreach ($student_attend as $value) { 
    // do something with $value 
} 

Weitere Informationen über foreachhere.

Verwandte Themen