Hoe kan ik waardes in een formulier verwerken?
Ik probeer dit jaar een overzicht bij te houden van het aantal gescoorde goals van mijn elftal.
Ik ben (met zoeken op het forum hier en een aantal lesjes) zo ver als dit gekomen:
scores.php:
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
$score_marco = "2 Goals";
$score_nils = "4 Goals";
$score_andre = "0 Goals";
$score_cor = "0 Goals";
$score_matthieu = "1 Goals";
$score_adri = "2 Goals";
$score_hans = "1 Goals";
$score_johan = "0 Goals";
$score_nico = "5 Goals";
$score_michel = "0 Goals";
$score_rene = "2 Goals";
$score_robert = "0 Goals";
$score_peter = "3 Goals";
$score_berend = "0 Goals";
?>
$score_marco = "2 Goals";
$score_nils = "4 Goals";
$score_andre = "0 Goals";
$score_cor = "0 Goals";
$score_matthieu = "1 Goals";
$score_adri = "2 Goals";
$score_hans = "1 Goals";
$score_johan = "0 Goals";
$score_nico = "5 Goals";
$score_michel = "0 Goals";
$score_rene = "2 Goals";
$score_robert = "0 Goals";
$score_peter = "3 Goals";
$score_berend = "0 Goals";
?>
En dit, index.php:
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
include('scores.php');
?>
<html>
<head>
<meta http-equiv="Content-Language" content="es">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Scores 5de SCK</title>
<style>
<!--
.tekst { font-family: Arial; font-size: 10pt }
-->
</style>
</head>
<body>
<p>Marco: <?php echo "$score_marco"; ?></p>
<p>Nils: <?php echo "$score_nils"; ?></p>
<p>Andre: <?php echo "$score_andre"; ?></p>
<p>Cor: <?php echo "$score_cor"; ?></p>
<p>Matthieu: <?php echo "$score_matthieu"; ?></p>
<p>Adri: <?php echo "$score_adri"; ?></p>
<p>Hans: <?php echo "$score_hans"; ?></p>
<p>Johan: <?php echo "$score_johan"; ?></p>
<p>Nico: <?php echo "$score_nico"; ?></p>
<p>Michel: <?php echo "$score_michel"; ?></p>
<p>Rene: <?php echo "$score_rene"; ?></p>
<p>Robert: <?php echo "$score_robert"; ?></p>
<p>Peter: <?php echo "$score_peter"; ?></p>
<p>Berend: <?php echo "$score_berend"; ?></p>
</body>
</html>
include('scores.php');
?>
<html>
<head>
<meta http-equiv="Content-Language" content="es">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Scores 5de SCK</title>
<style>
<!--
.tekst { font-family: Arial; font-size: 10pt }
-->
</style>
</head>
<body>
<p>Marco: <?php echo "$score_marco"; ?></p>
<p>Nils: <?php echo "$score_nils"; ?></p>
<p>Andre: <?php echo "$score_andre"; ?></p>
<p>Cor: <?php echo "$score_cor"; ?></p>
<p>Matthieu: <?php echo "$score_matthieu"; ?></p>
<p>Adri: <?php echo "$score_adri"; ?></p>
<p>Hans: <?php echo "$score_hans"; ?></p>
<p>Johan: <?php echo "$score_johan"; ?></p>
<p>Nico: <?php echo "$score_nico"; ?></p>
<p>Michel: <?php echo "$score_michel"; ?></p>
<p>Rene: <?php echo "$score_rene"; ?></p>
<p>Robert: <?php echo "$score_robert"; ?></p>
<p>Peter: <?php echo "$score_peter"; ?></p>
<p>Berend: <?php echo "$score_berend"; ?></p>
</body>
</html>
Mijn vraag is, is het mogelijk om de waardes in scores.php in een formulier te plaatsen zodat als bijv. Michel een keer scoort (dat zal me wat wezen maar OK :) dat het dan in een formulierveld wordt aangepast ipv in de php code?
Alvast bedankt voor jullie hulp,
Groet, Hans
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt![/modedit]
Gewijzigd op 05/07/2016 15:11:15 door Hans Ten Wolde
Heb je daar al over nagedacht?
Schrijven naar je scores.php bestand kan, maar is vrij complex en dermate ongestructureerd dat je beter een speciaal format kan gebruiken.
Bij voorkeur een MySQL-database die je met de MySQLi-functies aanroept, of anderzijds een XML-file, om wat mogelijkheden te noemen. Met een database kan je overigens de data ook berekenen. Wat dacht je bijvoorbeeld van alle goals van Klaasje die hij gemaakt heeft, zodat je hem kan eren als hij zijn 100e goal gebaald heeft in zijn carriére?
Gewijzigd op 05/07/2016 15:09:42 door - Ariën -
Ja, dat zou helemaal te gek zijn maar ben een leek wat dat betreft :/ worden dus weer late uurtjes en veel proberen, ha ha
Is een xml bestand wel direct via een formulier aan te passen?
Mijn voorkeur gaat uit naar een database, daar kan je de data ook heel makkelijk in opslaan en archiveren.
Om alleen de doelpunten op te slaan kun je ook een ini file gebruiken.
Ik had nog iets liggen en heb het voor jouw situatie aangepast. Als je meer wil zou je toch moeten uitwijken naar een database.
Voorbeeld
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
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
<?php
$file = 'goals.ini';
$soccerTeam = array(
'Marco',
'Nils',
'Andre',
'Cor',
'Matthieu',
'Adri',
'Hans',
'Johan',
'Nico',
'Michel',
'Rene',
'Robert',
'Peter',
'Berend',
);
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(isset($_POST['btn_save'])) {
$data = '[Goals]'.PHP_EOL;
foreach($soccerTeam as $player) {
if(isset($_POST[$player.'Goals'])) {
$data .= $player . '=' . $_POST[$player.'Goals'].PHP_EOL;
}
}
file_put_contents($file, $data, LOCK_EX);
echo '<p>Gegevens zijn opgeslagen</p>';
}
}
echo '<form method="POST">';
foreach($soccerTeam as $player) {
echo '<label>' . $player . '</label><input type="number" name="' . $player . 'Goals" value="' . (isset($ini[$player]) ? $ini[$player] : '0') . '" /><br />';
}
echo '<button type="submit" name="btn_save">Opslaan</button>'
.'</form>';
?>
$file = 'goals.ini';
$soccerTeam = array(
'Marco',
'Nils',
'Andre',
'Cor',
'Matthieu',
'Adri',
'Hans',
'Johan',
'Nico',
'Michel',
'Rene',
'Robert',
'Peter',
'Berend',
);
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(isset($_POST['btn_save'])) {
$data = '[Goals]'.PHP_EOL;
foreach($soccerTeam as $player) {
if(isset($_POST[$player.'Goals'])) {
$data .= $player . '=' . $_POST[$player.'Goals'].PHP_EOL;
}
}
file_put_contents($file, $data, LOCK_EX);
echo '<p>Gegevens zijn opgeslagen</p>';
}
}
echo '<form method="POST">';
foreach($soccerTeam as $player) {
echo '<label>' . $player . '</label><input type="number" name="' . $player . 'Goals" value="' . (isset($ini[$player]) ? $ini[$player] : '0') . '" /><br />';
}
echo '<button type="submit" name="btn_save">Opslaan</button>'
.'</form>';
?>
De doelpunten weergeven op een andere pagina kan dan alsvolgt
Wijziging: De Array soccerTeam is niet nodig voor het weergeven.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$file = 'goals.ini';
if(file_exists($file)) {
$ini = parse_ini_file($file, true);
echo '<p>'.PHP_EOL;
foreach($ini['Goals'] as $player=>$goals) {
echo '<strong>' . $player . '</strong> heeft <strong>' . $goals . '</strong> doelpunten gemaakt.<br />'.PHP_EOL;
}
echo '</p>'.PHP_EOL;
}
?>
$file = 'goals.ini';
if(file_exists($file)) {
$ini = parse_ini_file($file, true);
echo '<p>'.PHP_EOL;
foreach($ini['Goals'] as $player=>$goals) {
echo '<strong>' . $player . '</strong> heeft <strong>' . $goals . '</strong> doelpunten gemaakt.<br />'.PHP_EOL;
}
echo '</p>'.PHP_EOL;
}
?>
Gewijzigd op 06/07/2016 17:38:52 door Michael -
Precies goed :-)
Hartstikke bedankt man, helemaal top
Graag gedaan!