eenvoudig script berekening

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pet daalmeer

Pet daalmeer

07/07/2010 12:54:05
Quote Anchor link
Hallo,

Ik ben bezig met een eenvoudig script maar dit lukt nog niet zo.

In het script wil ik;
- vragen om het aantal m2 in een nette invulveld.
- Een knop "berekenen" (submit)
Dan als antwoord weergeven het ingevulde aantal * 2

wie zou hier een eenvoudig voorbeeld van kunnen plaatsen?Als het kan met nette opvang als er bijvoorbeeld tekst wordt ingevuld.

Alvast bedankt!
 
PHP hulp

PHP hulp

24/11/2024 11:16:02
 
Sander de Vos

Sander de Vos

07/07/2010 13:04:34
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
if (isset($_POST['m2'])) {
    $aantal = ($_POST['m2'] * 2);
    echo "Uitkomst:" . $aantal . "";
}
else {
    echo '<form method="post" action="" />
            Aantal meter: <input type="text" name="m2" />
            <input type="submit" value="Berekenen" />
          </form>'
;
}

?>
Gewijzigd op 07/07/2010 13:09:44 door Sander de Vos
 

07/07/2010 13:50:51
Quote Anchor link
Controleren of een formulier gepost is doe je met:
if($_SERVER['REQUEST_METHOD'] == 'POST')
De haakjes hoeven niet om de berekening (doe je ook niet bij wiskunde).
Je kunt ook gewoon direct $_POST['m2'] * 2 doen.
 
Sander de Vos

Sander de Vos

07/07/2010 14:19:54
Quote Anchor link
De request methode methode is nogal omslachtig.
Als hij meerdere forms in z'n php bestand zet, weet je dus niet welk gedeelte hij moet uitvoeren. Met '$_POST['m2']' geef ik dat dus aan.

Tussen haakjes ziet er naar mijn mening toch echt een stuk beter uit.
 

07/07/2010 14:24:44
Quote Anchor link
Als hij meerdere formulieren heeft (wat hij niet heeft, want anders zou hij deze simpele vraag niet stellen), dan is het netter om een hidden input te gebruiken.
De haakjes veroorzaken alleen maar verwarring vind ik, want ze zijn dus niet nodig.
 
Sander de Vos

Sander de Vos

07/07/2010 14:27:29
Quote Anchor link
Verwarring als je er niet mee kom kan gaan ja, anders is het heel logisch.
Hidden input kan ook ja, maar gebruikt alleen maar meer ruimte, en veroorzaakt een onnodige input. Want de input m2 alleen, is al genoeg om aan te wijzen welk deel van de php pagina moet worden uitgevoerd.
 

07/07/2010 14:31:54
Quote Anchor link
Sander de Vos op 07/07/2010 14:27:29:
Verwarring als je er niet mee kom kan gaan ja, anders is het heel logisch.

Hidden input kan ook ja, maar gebruikt alleen maar meer ruimte, en veroorzaakt een onnodige input. Want de input m2 alleen, is al genoeg om aan te wijzen welk deel van de php pagina moet worden uitgevoerd.


Waarom mag een extra input, die er juist voor kan zorgen dat het duidelijker wordt, volgens jou niet? En moeten haakjes, die totaal geen toegevoegde waarden hebben, juist weer wel?
Dat is inconsequent.
De haakjes zorgen voor verwarring omdat ze niet nodig (ook wiskundig niet), als je ze dan wel zou gebruiken zou dat erop kunnen duiden dat er wat speciaals aan de hand is. Wat niet het geval is. Ook scheelt het weer tik werk.
 
Sander de Vos

Sander de Vos

07/07/2010 14:41:38
Quote Anchor link
Ik snap van jou nou nog steeds niet helemaal wat het probleem is bij:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if (isset($_POST['m2'])) {

}

?>


Er is met de regel echt gewoon niks aan de hand. Dat jij het onduidelijk vind, licht niet aan mij, maar aan jou. Iedereen heeft een eigen mening over wat wel of niet duidelijk is. Om nou met iedereen rekening te houden is nogal omslagtig, en kost nog meer 'tikwerk'.

Kijk anders even op http://www.google.nl/#hl=nl&q=if+isset+_post&aq=1&aqi=g6&aql=&oq=if+(isset(%24_p&gs_rfai=&fp=1&cad=b en klik voor de grap is wat linkjes aan. Hit de CTRL+F knop op je toetsenbord, en tik isset(_POST[' is in.

Wiskundig zijn de haakjes bij de uitreken som niet nodig. Ik doe dit echter gewoon op mijn manier, omdat ik het wél overzichtelijker vind. Vind je dit niet, haal de haakjes dan weg.
Gewijzigd op 07/07/2010 14:43:23 door Sander de Vos
 
- Mark -

- Mark -

07/07/2010 14:41:40
Quote Anchor link
Heb alleen weer een beetje overdreven ben ik bang.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php

    /*--------------------------------------------------------------------------------------------------------------------------    
    (§) Settings.
    --------------------------------------------------------------------------------------------------------------------------*/    

    #| Minimaal aantal meters.

    
        $min_meters = 1;
        
    
    #| Maximaal aantal meters.
    
        $max_meters = 10;


    /*--------------------------------------------------------------------------------------------------------------------------    
    (§) Defaults.
    --------------------------------------------------------------------------------------------------------------------------*/    

    #| Set " $error_log " array voor het opslaan van alle fouten.

    
        $error_log = array();
        
        
    #| Set " $msg " variabele voor het opslaan van het resultaat / bericht.
    
        $msg = 'Vul hieronder het aantal gewenste meters in.';
        
        
    /*--------------------------------------------------------------------------------------------------------------------------    
    (§) Aantal vierkante meters berekenen.
    --------------------------------------------------------------------------------------------------------------------------*/    

    #| Kijken of het formulier is verzonden.

    
        if($_SERVER['REQUEST_METHOD'] == 'POST'){

        /*---- INFO: Ja het formulier is verzonden. ----*/

        #| Eerst controleren we of het formulier veld " m2 " is mee verzonden.

        
            if(isset($_POST['m2'])){

            /*---- INFO: Ja het formulier veld " m2 " is mee verzonden. ----*/
            
            #| Dan kunnen we nu controleren of er een geldig aantal meters is ingevuld.

            
                if(!in_array($_POST['m2'], range($min_meters, $max_meters))){

                /*---- INFO: Helaas! er is een ongeldig aantal meters ingevuld. ----*/

                #| Error toevoegen.


                    $error_log[] = 'Ongeldig aantal meters, U dient een getal in te vullen tussen de '.$min_meters.' en '.$max_meters.'.';

                }
            }

            else{
            
            #| Error toevoegen.
            
                $error_log[] = 'Het formulier veld " m2 " is niet mee verzonden.';
                
            }

        
            
        #| Kijken of er niets fout is gegaan.    
        
            if(empty($error_log)){

            /*---- INFO: Hoera! er is niets fout gegaan. ----*/

            #| Uitkomst berekenen en deze gebruiken om de default waarde van " $msg " te vervangen.

            
                $msg = 'Uitkomst: '.( $_POST['m2'] * 2 ).' vierkante meter.';

            }
        }

    
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Vierkante meters.</title>
</head>

<body>
<?php

    /*--------------------------------------------------------------------------------------------------------------------------    
    (§) Eventuele fouten en het resultaat weergeven.
    --------------------------------------------------------------------------------------------------------------------------*/    

    #| Eerst controleren of er fouten zijn die moeten worden weergegeven.

    
        if(!empty($error_log)){

        /*---- INFO: Er zijn helaas fouten. ----*/

        #| De fouten in een lijstje weergeven.

        
            echo '<ol><li>'.implode('</li><li>', $error_log).'</li></ol>';
            
        }



    #| Resultaat terug geven.
    
        echo $msg;

?>

<form method="post" action="" />
    Aantal meter: <input type="text" name="m2" /> <input type="submit" value="Berekenen" />
</form>
</body>
</html>
 
Sander de Vos

Sander de Vos

07/07/2010 14:45:13
Quote Anchor link
De man hierboven heeft tijd over.
http://www.weer.nl/
Gewijzigd op 07/07/2010 14:53:03 door Sander de Vos
 

07/07/2010 14:49:09
Quote Anchor link
Sander de Vos op 07/07/2010 14:41:38:
Ik snap van jou nou nog steeds niet helemaal wat het probleem is bij:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if (isset($_POST['m2'])) {

}

?>


Er is met de regel echt gewoon niks aan de hand. Dat jij het onduidelijk vind, licht niet aan mij, maar aan jou. Iedereen heeft een eigen mening over wat wel of niet duidelijk is. Om nou met iedereen rekening te houden is nogal omslagtig, en kost nog meer 'tikwerk'.

Als je even leest vind ik dit niet onduidelijk, ik vind dit niet te bedoeling. Je doet gewoon altijd overal dezelfde standaard volgen (dat is met request method). Uit deze manier die jij nu aandraagt, kan de conclusie worden gekeken dat er ook naar de submit variabele kan gekeken worden. Dit is niet het geval. Die wordt namelijk niet altijd gezet.

Sander de Vos op 07/07/2010 14:41:38:
Wiskundig zijn de haakjes bij de uitreken som niet nodig. Ik doe dit echter gewoon op mijn manier, omdat ik het wél overzichtelijker vind. Vind je dit niet, haal de haakjes dan weg.

Wiskundig gezien zijn de haakjes bijna nooit nodig. Als je maar de juiste volgorde weet. Je leert ook bij wiskunde dat je de som zo duidelijk mogelijk wilt houden, met te veel haakjes is dat dus niet het geval.

Die oplossing van Mark is het mooiste (want die doet ook gelijk html d'r bij, dus geen halve pagina). Al is ie misschien inderdaad wel wat doorgeschoten met die error log.
 
Sander de Vos

Sander de Vos

07/07/2010 14:51:41
Quote Anchor link
Amen.
 
Pet daalmeer

Pet daalmeer

07/07/2010 15:28:01
Quote Anchor link
Heren,
Allen zeer bedankt voor de uitgebreide reacties. /Ik kan hier zeker iets mee, is zo goede te volgen.
Nogmaals bedankt!
 
- SanThe -

- SanThe -

07/07/2010 15:42:43
Quote Anchor link
Maar waarom * 2?
Een oppervlakte berekenen doe je met kwadraat of lengte * breedte.
Gewijzigd op 07/07/2010 15:43:17 door - SanThe -
 
Johan Dam

Johan Dam

07/07/2010 16:09:57
Quote Anchor link
misschien is het een vierkant?
 
- SanThe -

- SanThe -

07/07/2010 16:11:24
Quote Anchor link
Johan Dam op 07/07/2010 16:09:57:
misschien is het een vierkant?


Dan is het nog steeds geen * 2.
 

07/07/2010 16:14:25
Quote Anchor link
SanThe Nvt op 07/07/2010 16:11:24:
Johan Dam op 07/07/2010 16:09:57:
misschien is het een vierkant?


Dan is het nog steeds geen * 2.


Misschien is het niet m^2, maar gewoon 2m, dus dan is het wel *2.
 
Pet daalmeer

Pet daalmeer

15/07/2010 18:18:26
Quote Anchor link
2 is een willekeurig getal, de juiste verhouding was nog niet bekend, inmiddel 1,5 van gemaakt.
 
- Mark -

- Mark -

16/07/2010 00:25:43
Quote Anchor link
De verandering waarom je vroeg, Vraag het de volgende keer wel A.U.B gewoon op het forum. Dan kunnen anderen je er misschien ook mee helpen. Ik ben ook niet elke dag actief.

PS waar ben je dit eigenlijk voor aan het gebruiken als ik vragen mag?


Verander

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php

    /*---- INFO: Ja het formulier veld " m2 " is mee verzonden. ----*/
    
    #| Dan kunnen we nu controleren of er een geldig aantal meters is ingevuld.

    
        if(!in_array($_POST['m2'], range($min_meters, $max_meters))){

        /*---- INFO: Helaas! er is een ongeldig aantal meters ingevuld. ----*/

        #| Error toevoegen.


            $error_log[] = 'Ongeldig aantal meters, U dient een getal in te vullen tussen de '.$min_meters.' en '.$max_meters.'.';

        }

                
?>


in

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
 
    /*---- INFO: Ja het formulier veld " m2 " is mee verzonden. ----*/
    
    #| Dan kunnen we nu controleren of er een numerieke waarde is ingevuld.

    
        if(ctype_digit($_POST['m2'])){

        /*---- INFO: De ingevulde waarde voor " $_POST['m2'] " is numeriek. ----*/

        #| Dan gaan we nu controleren of " $_POST['m2'] " een waarde heeft binnen het minimale en maximale aantal meters.

        
            if($_POST['m2'] < $min_meters){

            /*---- INFO: " $_POST['m2'] " is minder dan het minimaal aantal meters. ----*/

            #| Error toevoegen.


                $error_log[] = 'X';

            }

            elseif($_POST['m2'] > $max_meters){

            /*---- INFO: " $_POST['m2'] " is meer dan het maximale aantal meters. ----*/

            #| Error toevoegen.


                $error_log[] = 'Y';

            }
        }

        else{

        #| Error toevoegen.

            $error_log[] = 'De waarde ingevoerd voor het aantal meters dient numeriek te zijn.';

        }


?>
Gewijzigd op 16/07/2010 01:03:25 door - Mark -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.