• User

    php utilizzare gli stessi form per più funzioni

    :ciauz: salve a tutti gli utenti del forum
    io stavo crecando di creare una calcolatrice in php,(usando le varie funzioni di somma,potenza,moltiplicazione ecc ecc)e la volevo impostare con 2 form in cui inserisci 2 umeri e sotto questi il varie bottoni,che dicono somma,moltiplica ecc ecc.
    però non so come fare,perchè se dovessi solo sommare per esempio uso un tasto submit che mi porta ad un altra pagina dove con $_POST[numero1] faccio l'operazione,invece come posso fare avendo pù tasti?
    scusate se non sono stato chiaro ma sono agli inizi e mi sto ancora esercitando 😄


  • Super User

    Puoi aggiungere ad esempio una casella di scelta che invia il valore dell'operazione da effettuare (quindi un'opzione varrà "somma", un'altra "sottrazione", ecc...)
    Lo script che riceve i valori valuta il tutto con uno switch ed esegue l'operazione.
    Ad es.

    
    
    switch ($_POST['operazione'])
    {
    case somma:
       echo valore1+valore2;
       break;
    case sottrazione:
       echo valore1-valore2;
       breal;
    
    ecc....
    
    

  • User

    ehm si si proprio così ma non ho mai passato dati dai radio o provato switcht quindi guardate cosa mi esce se sapete risolvere

    questa è la pagina html della calcolatrice
    [php]<h2><img src="calcolatrice.gif" align="left"><center><font color="#00000" face="comic sans ms">CALCOLATRICE</center></H2>
    <h3><center>Primo numero</CENTER></H3>
    <form name="operazione" action="elabora_calc.php" method="post">
    <center><input type="text name="num1" size="15" maxlenght="15">
    <h3><center>Secondo numero</CENTER></H3></FONT>
    <input type="text name="num2" size="15" maxlenght="15"><br>
    <b>Somma<input type="radio" name="operazione" value=" Somma"/>
    Sottrai<input type="radio" name="operazione" value="Sottrai"/>
    Moltiplica <input type="radio" name="operazione" value="Moltiplica"/>
    Dividi <input type="radio" name="operazione" value="dividi"/>
    Eleva <input type="radio" name="operazione" value=" eleva"/></b><br><br>
    <center><input type="submit" value="esegui"></center>
    </form>[/php]

    e questa la pagina php che la dovrebbe elaborare

    [PHP]<?php

    switch ($_POST['operazione'])
    {
    case somma:
    echo "bcadd($_POST[num1],$_POST[num2])" ;
    break;
    case sottrai:
    echo "bcsub($_POST[num1],$_POST[num2])" ;
    break;
    case moltiplica:
    echo "bcmolt($_POST[num1],$_POST[num2])" ;
    case dividi:
    echo "bcdiv($_POST[num1],$_POST[num2])" ;
    case eleva:
    echo "pow($_POST[num1],$_POST[num2])" ;
    }
    ?>[/PHP]

    ma mi da un po di errori come undefinied constant e index 😢
    scusate ancora ma sono amcora un essere imparante!:rollo:


  • Super User

    Ad una prima occhiata:

    1. stai attento a maiuscole e minuscole
    2. aggiungi i break ad ogni istruzione
    3. fai echo più puliti, tipo questo:

    case somma:
    $risultato = bcadd($_POST[num1],$_POST[num2]);
    echo $risultato ;


  • User

    ho fatto tutto quello che mi hai suggerito 😉
    [PHP]<?php

    switch ($_POST['operazione'])
    {
    case somma:
    $somma_risultato = bcadd($_POST[num1],$_POST[num2]);
    echo $somma_risultato ;
    break;
    case sottrai:
    $sottrai_risultato = bcsub($_POST[num1],$_POST[num2]);
    echo $sottrai_risultato ;
    break;
    case moltiplica:
    $moltiplica_risultato = bcmolt($_POST[num1],$_POST[num2]) ;
    echo $moltiplica_risultato ;
    break;
    case dividi:
    $dividi_risultato = bcdiv($_POST[num1],$_POST[num2]);
    echo $dividi_risultato ;
    break ;
    case eleva:
    $eleva_risultato = pow($_POST[num1],$_POST[num2]);
    echo $eleva_risultato ;
    break ;
    }
    ?>[/PHP]

    ma purtroppo da problemi con le costanti

    [PHP]Notice: Use of undefined constant somma - assumed 'somma' in c:\programmi\easyphp1-8\www\funzioni php\elabora_calc.php on line 6

    Notice: Use of undefined constant sottrai - assumed 'sottrai' in c:\programmi\easyphp1-8\www\funzioni php\elabora_calc.php on line 10

    Notice: Use of undefined constant moltiplica - assumed 'moltiplica' in c:\programmi\easyphp1-8\www\funzioni php\elabora_calc.php on line 14

    Notice: Use of undefined constant dividi - assumed 'dividi' in c:\programmi\easyphp1-8\www\funzioni php\elabora_calc.php on line 18

    Notice: Use of undefined constant eleva - assumed 'eleva' in c:\programmi\easyphp1-8\www\funzioni php\elabora_calc.php on line 22[/PHP]
    😞


  • Super User

    Posta il codice di phpelabora_calc.php


  • User

    ehm :(): è quello che ho postato la sopre il file elabora_calc.php


  • User

    spero che mi aiuterete perchè mi interessa molto anche questa selezione coi bottoni radio che da operazioni diverse


  • Super User

    @ambigioz said:

    ho fatto tutto quello che mi hai suggerito 😉
    [PHP]<?php

    switch ($_POST['operazione'])
    {
    case somma:
    $somma_risultato = bcadd($_POST[num1],$_POST[num2]);
    echo $somma_risultato ;
    break;
    case sottrai:
    $sottrai_risultato = bcsub($_POST[num1],$_POST[num2]);
    echo $sottrai_risultato ;
    break;
    case moltiplica:
    $moltiplica_risultato = bcmolt($_POST[num1],$_POST[num2]) ;
    echo $moltiplica_risultato ;
    break;
    case dividi:
    $dividi_risultato = bcdiv($_POST[num1],$_POST[num2]);
    echo $dividi_risultato ;
    break ;
    case eleva:
    $eleva_risultato = pow($_POST[num1],$_POST[num2]);
    echo $eleva_risultato ;
    break ;
    }
    ?>[/PHP]

    ma purtroppo da problemi con le costanti

    [PHP]Notice: Use of undefined constant somma - assumed 'somma' in c:\programmi\easyphp1-8\www\funzioni php\elabora_calc.php on line 6

    Notice: Use of undefined constant sottrai - assumed 'sottrai' in c:\programmi\easyphp1-8\www\funzioni php\elabora_calc.php on line 10

    Notice: Use of undefined constant moltiplica - assumed 'moltiplica' in c:\programmi\easyphp1-8\www\funzioni php\elabora_calc.php on line 14

    Notice: Use of undefined constant dividi - assumed 'dividi' in c:\programmi\easyphp1-8\www\funzioni php\elabora_calc.php on line 18

    Notice: Use of undefined constant eleva - assumed 'eleva' in c:\programmi\easyphp1-8\www\funzioni php\elabora_calc.php on line 22[/PHP]
    😞

    Certo che hai problemi con le costanti, non le hai dichiarate!!! :mmm:

    somma è una costante oppure una stringa? Secondo me una stringa. Prova cosi:
    [php]<?php

    switch ($_POST['operazione'])
    {
    case 'somma':
    $somma_risultato = bcadd($_POST[num1],$_POST[num2]);
    echo $somma_risultato ;
    break;
    case 'sottrai':
    $sottrai_risultato = bcsub($_POST[num1],$_POST[num2]);
    echo $sottrai_risultato ;
    break;
    case 'moltiplica':
    $moltiplica_risultato = bcmolt($_POST[num1],$_POST[num2]) ;
    echo $moltiplica_risultato ;
    break;
    case 'dividi':
    $dividi_risultato = bcdiv($_POST[num1],$_POST[num2]);
    echo $dividi_risultato ;
    break ;
    case 'eleva':
    $eleva_risultato = pow($_POST[num1],$_POST[num2]);
    echo $eleva_risultato ;
    break ;
    }
    ?> [/php]


  • User

    ragazzi ho risolto così..inanzitutto non ho usato bcadd() eccetra ma usando + - / 🙂
    e quindi il codicce così va[php]<?php
    $primo_valore = $_POST['1']; $secondo_valore = $_POST['2'];
    $operazione = $_POST['radiobutton'];
    switch($operazione)
    {
    case 'addizione':
    {
    $somma = $primo_valore + $secondo_valore;
    print($somma) ;
    }
    break;
    case 'sottrazione':
    {
    $sottrazione = $primo_valore - $secondo_valore;
    print($sottrazione);
    }
    break;
    case 'moltiplicazione':
    {
    $prodotto = $primo_valore * $secondo_valore;
    print($prodotto);
    }
    break;
    case 'divisione':
    {
    $quoziente = $primo_valore / $secondo_valore;
    print($quoziente);
    }
    break;
    default:print("Si è verificato un errore!");
    break;
    }

    ?>[/php]

    grazie comunqu per l'aiuto :fumato: