Product verwijderen in $_SESSION zonder DB
Ik haal momenteel waarden uit een ingevuld formulier op en plaats deze in een tabel.
Zie onderstaand stukje script. Nu lukt het mij niet om een product/rij te verwijderen. Weet iemand hoe ik dit kan oplossen?
De bedoeling is dat alles blijft staan behalve de rij waar op de link verwijderen wordt geklikt.
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
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
<?php
session_start();
$_SESSION['vervoer'] = array(
'auto' => array('naam' => 'opel', 'snelheid' => 100, 'prodId' => 1),
'brommer' => array('naam' => 'vespa', 'snelheid' => 55, 'prodId' => 2),
'motor' => array('naam' => 'homda', 'snelheid' => 160, 'prodId' => 3),
);
if($_SERVER['REQUEST_METHOD'] == 'POST' || $_SERVER['REQUEST_METHOD'] == 'GET' ){
foreach($_SESSION['vervoer'] as $ID => $data){
if(isset($_POST[$ID])){
#| Dan controleren we nu of $_POST[$ID] Een numerieke waarde bevat die tussen het minimum en maximum van het huidige aantal banden ligt.
if(ctype_digit($_POST[$ID]) and $_POST[$ID] >= $data['min'] and $_POST[$ID] <= $data['max']){
/*---- INFO: Er is een geldig aantal gekozen. ----*/
echo '
<td class="kleureven" width="25%">Vervoer:<br />'.$data['naam'].'</td>
<td class="kleureven" width="25%">Soort:<br />'.$_POST[$ID].'</td>
<td class="kleureven" width="25%">Snelheid:<br />'.$data['snelheid'].'</td>
<td class="kleureven" width="25%"><a href="'.$data['id'].'">verwijderen</a></td>
</tr>';
}
else{
echo '';
}
}
}
}
?>
session_start();
$_SESSION['vervoer'] = array(
'auto' => array('naam' => 'opel', 'snelheid' => 100, 'prodId' => 1),
'brommer' => array('naam' => 'vespa', 'snelheid' => 55, 'prodId' => 2),
'motor' => array('naam' => 'homda', 'snelheid' => 160, 'prodId' => 3),
);
if($_SERVER['REQUEST_METHOD'] == 'POST' || $_SERVER['REQUEST_METHOD'] == 'GET' ){
foreach($_SESSION['vervoer'] as $ID => $data){
if(isset($_POST[$ID])){
#| Dan controleren we nu of $_POST[$ID] Een numerieke waarde bevat die tussen het minimum en maximum van het huidige aantal banden ligt.
if(ctype_digit($_POST[$ID]) and $_POST[$ID] >= $data['min'] and $_POST[$ID] <= $data['max']){
/*---- INFO: Er is een geldig aantal gekozen. ----*/
echo '
<td class="kleureven" width="25%">Vervoer:<br />'.$data['naam'].'</td>
<td class="kleureven" width="25%">Soort:<br />'.$_POST[$ID].'</td>
<td class="kleureven" width="25%">Snelheid:<br />'.$data['snelheid'].'</td>
<td class="kleureven" width="25%"><a href="'.$data['id'].'">verwijderen</a></td>
</tr>';
}
else{
echo '';
}
}
}
}
?>
Verder set jij steeds dat array opnieuw bij openen van de pagina. Dus dat array blijft hetzelfde.
Onderstaande had het moeten zijn.
Hoe zou jij de array dynamisch maken en zorgen dat als je op de verwijderen link klikt dat er een rij verdwijnt uit het table?
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
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
<?php
session_start();
$_SESSION['vervoer'] = array(
'auto' => array('naam' => 'opel', 'snelheid' => 100, 'prodId' => 1),
'brommer' => array('naam' => 'vespa', 'snelheid' => 55, 'prodId' => 2),
'motor' => array('naam' => 'homda', 'snelheid' => 160, 'prodId' => 3),
);
if($_SERVER['REQUEST_METHOD'] == 'POST' || $_SERVER['REQUEST_METHOD'] == 'GET' ){
foreach($_SESSION['vervoer'] as $ID => $data){
if(isset($_POST[$ID])){
#| Dan controleren we nu of $_POST[$ID] Een numerieke waarde bevat die tussen het minimum en maximum van het huidige aantal banden ligt.
if(ctype_digit($_POST[$ID])){
/*---- INFO: Er is een geldig aantal gekozen. ----*/
echo '<tr class="product-border">
<td class="kleureven" width="25%">Vervoer:<br />'.$data['naam'].'</td>
<td class="kleureven" width="25%">Soort:<br />'.$_POST[$ID].'</td>
<td class="kleureven" width="25%">Snelheid:<br />'.$data['snelheid'].'</td>
<td class="kleureven" width="25%"><a href="'.$data['id'].'">verwijderen</a></td>
</tr>';
}
else{
echo '';
}
}
}
}
?>
session_start();
$_SESSION['vervoer'] = array(
'auto' => array('naam' => 'opel', 'snelheid' => 100, 'prodId' => 1),
'brommer' => array('naam' => 'vespa', 'snelheid' => 55, 'prodId' => 2),
'motor' => array('naam' => 'homda', 'snelheid' => 160, 'prodId' => 3),
);
if($_SERVER['REQUEST_METHOD'] == 'POST' || $_SERVER['REQUEST_METHOD'] == 'GET' ){
foreach($_SESSION['vervoer'] as $ID => $data){
if(isset($_POST[$ID])){
#| Dan controleren we nu of $_POST[$ID] Een numerieke waarde bevat die tussen het minimum en maximum van het huidige aantal banden ligt.
if(ctype_digit($_POST[$ID])){
/*---- INFO: Er is een geldig aantal gekozen. ----*/
echo '<tr class="product-border">
<td class="kleureven" width="25%">Vervoer:<br />'.$data['naam'].'</td>
<td class="kleureven" width="25%">Soort:<br />'.$_POST[$ID].'</td>
<td class="kleureven" width="25%">Snelheid:<br />'.$data['snelheid'].'</td>
<td class="kleureven" width="25%"><a href="'.$data['id'].'">verwijderen</a></td>
</tr>';
}
else{
echo '';
}
}
}
}
?>
$data['id'] bestaat niet en mocht je daar 'prodId' mee bedoelen dan lijkt mij dat alleen een getal niet echt een pagina zal zijn.
Zet bovenin:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest?>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest?>