- Home
- Categorie
- Coding e Sistemistica
- PHP
- php utilizzare gli stessi form per più funzioni
-
php utilizzare gli stessi form per più funzioni
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
-
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....
-
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!
-
Ad una prima occhiata:
- stai attento a maiuscole e minuscole
- aggiungi i break ad ogni istruzione
- fai echo più puliti, tipo questo:
case somma:
$risultato = bcadd($_POST[num1],$_POST[num2]);
echo $risultato ;
-
ho fatto tutto quello che mi hai suggerito
[PHP]<?phpswitch ($_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]
-
Posta il codice di phpelabora_calc.php
-
ehm :(): è quello che ho postato la sopre il file elabora_calc.php
-
spero che mi aiuterete perchè mi interessa molto anche questa selezione coi bottoni radio che da operazioni diverse
-
@ambigioz said:
ho fatto tutto quello che mi hai suggerito
[PHP]<?phpswitch ($_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!!!
somma è una costante oppure una stringa? Secondo me una stringa. Prova cosi:
[php]<?phpswitch ($_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]
-
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