waardes in een array toevoegen via een formulier
Ik wil waardes aan een array toevoegen dmv een formulier. Dus zo dat de array steeds langer wordt als er een nieuwe waarde aan wordt toegevoegd.
Dit is m'n formulier:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
echo "<form action='' method='post'>
<input type='text' name='naam' />
<input type='submit' name='submit' value='Voeg toe' />
</form>";
?>
echo "<form action='' method='post'>
<input type='text' name='naam' />
<input type='submit' name='submit' value='Voeg toe' />
</form>";
?>
Dit is m'n code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$test = array();
array_push($test, "aardbei");
array_push($test, "banaan");
array_push($test, "citroen");
array_push($test, "druif");
// waarde toevoegen
array_push($test, $_POST['naam']);
// of $test[] = $_POST['naam'];
// laten zien op scherm
foreach($test as $naam)
{
echo $naam."<br />";
}
?>
$test = array();
array_push($test, "aardbei");
array_push($test, "banaan");
array_push($test, "citroen");
array_push($test, "druif");
// waarde toevoegen
array_push($test, $_POST['naam']);
// of $test[] = $_POST['naam'];
// laten zien op scherm
foreach($test as $naam)
{
echo $naam."<br />";
}
?>
Maar zo wordt de toegevoegde waarde na elke submit vervangen. Ik wil dat iedere nieuwe waarde onderaan de lijst wordt toegevoegd en dat alle eerder toegevoegde waarden gewoon blijven staan. Is dat mogelijk met een array?
- hidden form field
- $_SESSION
- $_COOKIE
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
session_start();
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(!isset($_SESSION['test']) OR !is_array($_SESSION['test']))
$_SESSION['test'] = array();
$_SESSION['test'][] = $_POST['naam'];
}
if(is_array($_SESSION['test']) AND count($_SESSION['test']) > 0) {
foreach($_SESSION['test'] AS $value) {
echo htmlspecialchars($value).'<br />';
}
}
?>
session_start();
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(!isset($_SESSION['test']) OR !is_array($_SESSION['test']))
$_SESSION['test'] = array();
$_SESSION['test'][] = $_POST['naam'];
}
if(is_array($_SESSION['test']) AND count($_SESSION['test']) > 0) {
foreach($_SESSION['test'] AS $value) {
echo htmlspecialchars($value).'<br />';
}
}
?>
Gewijzigd op 31/05/2011 15:54:00 door Arjan -
Pim B op 31/05/2011 15:31:25:
Ik wil dat iedere nieuwe waarde onderaan de lijst wordt toegevoegd en dat alle eerder toegevoegde waarden gewoon blijven staan. Is dat mogelijk met een array?
Daar is een session een goede oplossing voor. Echter als je de browser sluit ben je alles weer kwijt. Wil je het bij een volgende keer weer hebben dan zal je het in een database of in een cookie moeten zetten. Nadeel van een cookie is weer dat men dat kan editen en/of weggooien. Een database is de beste oplossing.