update met directe weergave
bij het updaten van een veld had ik graag dat het ineens wordt weergegeven zodra je het aantal wijzigd en niet na een tweede reload van de pagina.
Zoals het nu is heb ik het aantal en verander ik het bv van 10 naar 12 en als ik op de buton klik wordt het aantal wel gewijzigd maar je ziet nog 10 staan , het is pas na een reload van de pagina dat het nieuwe aantal zichtbaar wordt , hoe kan dit aangapst worden
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
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
<?php
$wagentje = "SELECT ploegnummer, productnaam, sapnr, aantal, basis_eenheid, bestel_eenheid, inhoud from bestel_wagentje_elek WHERE ploegnummer='". $_SESSION["ploegnummer"] ."'";
$resultaat = mysql_query($wagentje) or die ("FOUT: " . mysql_error());
if (mysql_num_rows($resultaat) == 0) {
echo ('<table width= \"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\">
<tr><td>');
echo 'U hebt nog geen producten in uw winkelwagentje';
echo ('
</td></tr>');
}
else{
?>
<table width="700" border="0" cellpadding="0" cellspacing="1">
<tr>
<th width="76" bgcolor="#666666"><span class="style1">Sapnummer</span></th>
<th width="139" bgcolor="#666666"><span class="style1">Productnaam</span></th>
<th width="53" bgcolor="#666666"><span class="style1">Aantal</span></th>
<th width="67" bgcolor="#666666"><span class="style1">Basis e.h. </span></th>
<th width="71" bgcolor="#666666"><span class="style1">Bestel e.h. </span></th>
<th width="45" bgcolor="#666666"><span class="style1">Inhoud</span></th>
<th width="137" bgcolor="#666666"><span class="style1">Aantal</span></th>
<th width="103" bgcolor="#666666"><span class="style1">Verwijder</span></th>
</tr>
<?php
while($waarde = mysql_fetch_array($resultaat)) {
echo ('<tr>
<th bgcolor="#999999">'.$waarde['sapnr'].'</th>
<th bgcolor="#999999" align="left">'.$waarde['productnaam'].'</th>
<th bgcolor="#999999">'.$waarde['aantal'].'</th>
<th bgcolor="#999999">'.$waarde['basis_eenheid'].'</th>
<th bgcolor="#999999">'.$waarde['bestel_eenheid'].'</th>
<th bgcolor="#999999">'.$waarde['inhoud'].'</th>
<th bgcolor="#999999">
<form action="'. $PHP_SELF.'" method="post">
<input type="text" name="aantal" value="'.$waarde['aantal'].'" size="1" maxlength="2">
<input type="hidden" name="sapnr" value="'.$waarde['sapnr'].'">
<input type="hidden" name="productnaam" value="'.$waarde['naam'].'">
<input type="hidden" name="basis_eenheid" value="'.$waarde['basis_eenheid'].'">
<input type="hidden" name="bestel_eenheid" value="'.$waarde['bestel_eenheid'].'">
<input type="hidden" name="ploegnummer" value="'. $_SESSION["ploegnummer"] .'">
<input type="hidden" name="inhoud" value="'.$waarde['inhoud'].'">
<input type="submit" name="form_van" value="Wijzigen">
</form></th>
<th bgcolor="#999999></th></tr>');
} if (mysql_num_rows($resultaat) > 0) {
$update="UPDATE bestel_wagentje_elek SET aantal = '". $aantal ."' ";
$update.="WHERE ploegnummer ='". $ploegnummer."' ";
$update.="AND sapnr = '".$sapnr."'";
$updated = mysql_query($update) or die ("FOUT: " . mysql_error());
}
?>
$wagentje = "SELECT ploegnummer, productnaam, sapnr, aantal, basis_eenheid, bestel_eenheid, inhoud from bestel_wagentje_elek WHERE ploegnummer='". $_SESSION["ploegnummer"] ."'";
$resultaat = mysql_query($wagentje) or die ("FOUT: " . mysql_error());
if (mysql_num_rows($resultaat) == 0) {
echo ('<table width= \"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\">
<tr><td>');
echo 'U hebt nog geen producten in uw winkelwagentje';
echo ('
</td></tr>');
}
else{
?>
<table width="700" border="0" cellpadding="0" cellspacing="1">
<tr>
<th width="76" bgcolor="#666666"><span class="style1">Sapnummer</span></th>
<th width="139" bgcolor="#666666"><span class="style1">Productnaam</span></th>
<th width="53" bgcolor="#666666"><span class="style1">Aantal</span></th>
<th width="67" bgcolor="#666666"><span class="style1">Basis e.h. </span></th>
<th width="71" bgcolor="#666666"><span class="style1">Bestel e.h. </span></th>
<th width="45" bgcolor="#666666"><span class="style1">Inhoud</span></th>
<th width="137" bgcolor="#666666"><span class="style1">Aantal</span></th>
<th width="103" bgcolor="#666666"><span class="style1">Verwijder</span></th>
</tr>
<?php
while($waarde = mysql_fetch_array($resultaat)) {
echo ('<tr>
<th bgcolor="#999999">'.$waarde['sapnr'].'</th>
<th bgcolor="#999999" align="left">'.$waarde['productnaam'].'</th>
<th bgcolor="#999999">'.$waarde['aantal'].'</th>
<th bgcolor="#999999">'.$waarde['basis_eenheid'].'</th>
<th bgcolor="#999999">'.$waarde['bestel_eenheid'].'</th>
<th bgcolor="#999999">'.$waarde['inhoud'].'</th>
<th bgcolor="#999999">
<form action="'. $PHP_SELF.'" method="post">
<input type="text" name="aantal" value="'.$waarde['aantal'].'" size="1" maxlength="2">
<input type="hidden" name="sapnr" value="'.$waarde['sapnr'].'">
<input type="hidden" name="productnaam" value="'.$waarde['naam'].'">
<input type="hidden" name="basis_eenheid" value="'.$waarde['basis_eenheid'].'">
<input type="hidden" name="bestel_eenheid" value="'.$waarde['bestel_eenheid'].'">
<input type="hidden" name="ploegnummer" value="'. $_SESSION["ploegnummer"] .'">
<input type="hidden" name="inhoud" value="'.$waarde['inhoud'].'">
<input type="submit" name="form_van" value="Wijzigen">
</form></th>
<th bgcolor="#999999></th></tr>');
} if (mysql_num_rows($resultaat) > 0) {
$update="UPDATE bestel_wagentje_elek SET aantal = '". $aantal ."' ";
$update.="WHERE ploegnummer ='". $ploegnummer."' ";
$update.="AND sapnr = '".$sapnr."'";
$updated = mysql_query($update) or die ("FOUT: " . mysql_error());
}
?>
Oplossing: Altijd eerst alle logica uitvoeren (controles, queries, etc.) en dan pas de output naar het scherm sturen.
Verder werkt $PHP_SELF natuurlijk niet (zie je html-broncode), dit moet zijn $_SERVER['PHP_SELF']. En echo is geen functie, daar horen dus geen () te worden gebruikt.
Ik ben maar een beginnertje hoor :-)
dus alles moet in het begin komen dan ?