Opslaan van formulier hulp (geen idee hoe ik dit moet opslaan in mijn database)
Ik ben een script aan het maken waarin ik met een checklist werk. Ik ben alleen na meerdere tests nog niet verder gekomen omdat ik op de een of andere manier niet snap hoe je de checkboxen op kan slaan in de database.
Ik wil tussendoor alles opslaan in de DB omdat ik de checklists ook later (bijv. een paar dagen) weer kan bewerken. Hierdoor vallen voor mij sessies en cookies al af (denk ik).
Hoe kan ik dit het beste inrichten met de tabellen in MySQL en de data plaatsen? Ik heb nog geen pagina die update omdat ik dit niet werkend krijg. De overige velden zijn geen probleem maar het probleem zit in de softwarelijst. Er staan zo'n 50 programma's in de software lijst nu en de inhoud hiervan kan wijzigen.
Kan iemand me op weg helpen?
Ik heb 4 tabellen:
-Medewerkers (niet zo relevant)
-checklist_software (een lijst met ID, naam, categorie)
-checklist_installatie_details (een lijst met installatienumemr, ID, check)
-checklist_installatie (een lijst met installatienummer en de overige velden. Deze tabel werkt prima)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<?php
// foutafhandeling instellen
ini_set('display_errors', 'On');
error_reporting(E_ALL);
//Verbind met de database
include 'connect.php';
$query1 = "SELECT naam, stafcode FROM afdelingit WHERE rechten=1";
// Execute it, or return the error message if there's a problem.
$result2 = mysql_query($query1) or die(mysql_error());
$dropdown = "<select name='itmedewerker'>";
while($row2 = mysql_fetch_assoc($result2)) {
$dropdown .= "\r\n<option value='{$row2['naam']} {$row2['stafcode']}'>{$row2['naam']} {$row2['stafcode']}</option>";
}
$dropdown .= "\r\n</select>";
?>
<html>
<form action="http://view/site/checklist_verwerken.php" method="post">
<table width="815"><tbody> <tr>
<td></td>
<td><b>Gegevens:</b></td>
<td></td>
</tr>
<tr>
<td></td>
<td><b>Installatie voor:</b></td>
<td><input type="text" name="installatie_voor"></td>
</tr>
<tr>
<td ></td>
<td><b>Installatie datum:</b></td>
<td><input type="text" name="installatie_datum"></td>
</tr>
<tr>
<td></td>
<td><b>Status:</b></td>
<td><input type="radio" name="status" value="Afgerond">Afgerond <input type="radio" name="status" value="In uitvoering">In uitvoering</td>
</tr>
<tr>
<td></td>
<td><b>Installatie door:</b></td>
<td><?php echo $dropdown; ?></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td ><b>Pc nummer nieuw:</b></td>
<td ><input type="text" name="pc_nummer_nieuw"></td>
</tr>
<tr>
<td></td>
<td><b>Pc nummer oud:</b></td>
<td><input type="text" name="pc_nummer_oud"></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td><b>Hardware soort:</b></td>
<td><input type="radio" name="hardware_soort" value="Laptop">Laptop <input type="radio" name="hardware_soort" value="Desktop">Desktop</td>
</tr>
<tr>
<td></td>
<td><b>Hardware type:</b></td>
<td><input type="text" name="hardware_type"></td>
</tr>
<tr>
<td></td>
<td><b>Installatie type:</b></td>
<td><input type="radio" name="installatie_type" value="Image">Image <input type="radio" name="installatie_type" value="Handmatig">Handmatig</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<table width="815">
<tr>
<td></td>
<td></td>
<td>ID:</td>
<td>Naam:</td>
<td>Categorie:</td>
</tr>
<?php
//Query starten
$query = mysql_query("SELECT * FROM checklist_software ORDER BY Categorie DESC, ID ASC");
//Geef het resultaat van de array en loop elke rij!
while ($row = mysql_fetch_array($query)){
?>
<tr>
<td></td>
<td><input type="checkbox" name="<?php echo $row['ID'] ;?>" value="check"></td>
<td><?php echo $row['ID'] ;?></center></td>
<td><?php echo $row['naam'] ;?></td>
<td><?php echo $row['categorie'] ?></td>
</tr>
<?php } //afsluiten van de statement: if?>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>Afronden checklist:<input type="submit" value="Opslaan"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
// foutafhandeling instellen
ini_set('display_errors', 'On');
error_reporting(E_ALL);
//Verbind met de database
include 'connect.php';
$query1 = "SELECT naam, stafcode FROM afdelingit WHERE rechten=1";
// Execute it, or return the error message if there's a problem.
$result2 = mysql_query($query1) or die(mysql_error());
$dropdown = "<select name='itmedewerker'>";
while($row2 = mysql_fetch_assoc($result2)) {
$dropdown .= "\r\n<option value='{$row2['naam']} {$row2['stafcode']}'>{$row2['naam']} {$row2['stafcode']}</option>";
}
$dropdown .= "\r\n</select>";
?>
<html>
<form action="http://view/site/checklist_verwerken.php" method="post">
<table width="815"><tbody> <tr>
<td></td>
<td><b>Gegevens:</b></td>
<td></td>
</tr>
<tr>
<td></td>
<td><b>Installatie voor:</b></td>
<td><input type="text" name="installatie_voor"></td>
</tr>
<tr>
<td ></td>
<td><b>Installatie datum:</b></td>
<td><input type="text" name="installatie_datum"></td>
</tr>
<tr>
<td></td>
<td><b>Status:</b></td>
<td><input type="radio" name="status" value="Afgerond">Afgerond <input type="radio" name="status" value="In uitvoering">In uitvoering</td>
</tr>
<tr>
<td></td>
<td><b>Installatie door:</b></td>
<td><?php echo $dropdown; ?></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td ><b>Pc nummer nieuw:</b></td>
<td ><input type="text" name="pc_nummer_nieuw"></td>
</tr>
<tr>
<td></td>
<td><b>Pc nummer oud:</b></td>
<td><input type="text" name="pc_nummer_oud"></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td><b>Hardware soort:</b></td>
<td><input type="radio" name="hardware_soort" value="Laptop">Laptop <input type="radio" name="hardware_soort" value="Desktop">Desktop</td>
</tr>
<tr>
<td></td>
<td><b>Hardware type:</b></td>
<td><input type="text" name="hardware_type"></td>
</tr>
<tr>
<td></td>
<td><b>Installatie type:</b></td>
<td><input type="radio" name="installatie_type" value="Image">Image <input type="radio" name="installatie_type" value="Handmatig">Handmatig</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<table width="815">
<tr>
<td></td>
<td></td>
<td>ID:</td>
<td>Naam:</td>
<td>Categorie:</td>
</tr>
<?php
//Query starten
$query = mysql_query("SELECT * FROM checklist_software ORDER BY Categorie DESC, ID ASC");
//Geef het resultaat van de array en loop elke rij!
while ($row = mysql_fetch_array($query)){
?>
<tr>
<td></td>
<td><input type="checkbox" name="<?php echo $row['ID'] ;?>" value="check"></td>
<td><?php echo $row['ID'] ;?></center></td>
<td><?php echo $row['naam'] ;?></td>
<td><?php echo $row['categorie'] ?></td>
</tr>
<?php } //afsluiten van de statement: if?>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>Afronden checklist:<input type="submit" value="Opslaan"></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
Toevoeging op 03/10/2012 15:56:25:
Ik denk dat ik niet duidelijk genoeg ben geweest bovenstaand dus even een aanvulling:
Ik wil graag weten hoe ik de waarde (of de woorden checked/unchecked) van een checkbox kan opslaan in mijn database. Deze moeten dan afkomstig zijn van de lijst gegenereerd door de
Code (php)
1
2
3
4
5
6
2
3
4
5
6
//Query starten
$query = mysql_query("SELECT * FROM checklist_software ORDER BY Categorie DESC, ID ASC");
//Geef het resultaat van de array en loop elke rij!
while ($row = mysql_fetch_array($query)){
?>
$query = mysql_query("SELECT * FROM checklist_software ORDER BY Categorie DESC, ID ASC");
//Geef het resultaat van de array en loop elke rij!
while ($row = mysql_fetch_array($query)){
?>
query
Toevoeging op 03/10/2012 15:57:58:
. de checkboxen horen bij de query en moeten daar aan bijv. het software ID gelinkt worden
1: bij het tonen van de data moet je aangeven wat er "checked" was in de database.
2: bij het verwerken van de data (na submit) moeten de nieuwe checkboxen in de database worden opgeslagen.
1: TONEN
Je doet: . Ik weet niet goed wat je daarmee wilt. De name moet normaliter corresponderen met de column name en de value met de inhoud van die column. En dan zal er ook indien toepasselijk de tekst "checked" bij ge-echo'd moeten worden. Maar waar staat in die tabel of de value checked is? Waarschijnlijk staat dat in "checklist_installatie_details" maar dan moet je die wel in je query opnemen.
2: VERWERKEN
Na een submit van het form worden de resultaten gestuurd naar "http://view/site/checklist_verwerken.php". In die file zul je iets moeten doen met $_POST[name]. (waarbij "name" de naam is die je bij "1: TONEN" hebt gegeven. $_POST[name] zal een array zijn met de gecheckte values. Aan de hand daarvan moet je updates statements naar je database afvuren.
Ik hoop dat je daar iets mee kunt.
Gewijzigd op 03/10/2012 23:26:58 door Ivo Breeden
dat kan vaak verhelderend werken
groet frank
var_dump($_POST);
onderste twee korter maar minder goed leesbaar tenzij je de bron van de pagina bekijkt