• User Attivo

    form con collegamento funzione e file

    Ciao a tutti, qualcuno saprebbe mica dirmi dove sbaglio? In questi codici i primi 2 funzionano e mi danno le percentuali giuste, gli altri 2 mi danno 0 e non riesco a capire come fare il collegamento...Premetto che sono ancora alle prime armi:

    1. form.html

    <html>
    <head>
    </head>
    <body>
    <form action="elabora.php" method="post">

    <input type="text"name="numero1"><br>
    <input type="radio" name="numero3" value="commercio">commercio impiegati<br>
    <input type="radio" name="numero3" value="pubblici_esercizi">pubbl.eserc impiegati<br>
    <input type="radio" name="numero3" value="commercio2">commercio operai<br>
    <input type="radio" name="numero3" value="pubblici_esercizi2">pubbl.eserc operai

    <input type="submit" value="calcola il netto (lordo irpef)"><br>

    </body>
    </html>

    1. funzione.php

    <?php

    print "<br>";
    function aliquote_ctr_dip($percentuali)
    {

    GLOBAL $perc_impiegati, $perc_operai;
    switch($percentuali)
    {
    case "commercio":

    $perc_impiegati="10";
    $perc_operai="9.89";

    break;

    case 'pubblici_esercizi':

    $perc_impiegati="18.2";
    $perc_operai="10.8";
    }
    }

    ?>

    1. elabora.php

    <center>
    <?php

    include("funzione.php");
    aliquote_ctr_dip( $_POST['numero3'] );
    $numero1=$_POST['numero1'];

    if ($_POST['numero3']=="commercio")
    $result=$numero1*$perc_impiegati/100;

    elseif

    ($_POST['numero3']=="commercio2")
    $result=$numero1*$perc_operai/100;

    elseif

    ($_POST['numero3']=="pubblici_esercizi")
    $result=$numero1*$perc_impiegati/100;

    elseif

    ($_POST['numero3']=="pubblici_esercizi2")
    $result=$numero1*$perc_operai/100;

    echo "<br>";
    echo $result

    ?>
    <center>

    Grazie!


  • User Attivo

    Ciao maubox8 e benvenuto nel ForumGT.

    Con "i primi due codici mi funzionano .." intendi le $result nella funzione elabora.php ?


  • User Attivo

    Ciao MZ, grazie per l'aiuto e il benvenuto! Si, il problema era proprio nelle ultime 2 $result, comunque ho risolto in altro modo; ho aggiunto altre 2 istruzioni nella funzione, ora funziona tutto, ma il mio dilemma adesso è; quanto tempo ci metto per inserire tutti i "case" nella funzione? Ne dovrei inserire molte... esiste un modo piu' veloce? :mmm:
    Ti posto i nuovi codici e grazie per la disponiblità:

    1. form.html

    <html>
    <head>
    per le virgole usare i punti
    </head>
    <link rel=stylesheet href="style4.css" type="text/css">
    <body>
    <form action="elabora.php" method="post">
    <br>
    <input type="text" name="numero1">
    <br>
    <select name="numero3">
    <br>
    <option value="">scegli settore</option><br>
    <option value="commercio_imp">commercio impiegati</option>
    <option value="commercio_op">commercio operai</option>
    <option value="pubblici_esercizi_imp">pubblici esercizi imp</option>
    <option value="pubblici_esercizi_op">pubblici esercizi op</option><br>
    </select>
    <br><br>
    <br>
    <input type="submit" value="calcola il netto (lordo irpef)">
    <br>

    </body>
    </html>

    1. funzione_perc_ctr_dip.php

    <?php
    print "<br>";
    function aliquote_ctr_dip($percentuali)
    {
    GLOBAL $perc_impiegati, $perc_operai, $no;
    switch($percentuali)
    {
    case "":

       $no= "DEVI SELEZIONARE UN SETTORE";
    

    case "commercio_imp":

       $perc_impiegati="10";
    

    break;
    case "pubblici_esercizi_imp":

       $perc_impiegati="18.2";
    

    case "commercio_op":

       $perc_operai="9.89";
    

    break;
    case "pubblici_esercizi_op":

       $perc_operai="10.8";
    

    }
    }

    1. elabora.php

    <html>
    <head>
    </head>
    <link rel=stylesheet href="style4.css" type="text/css">
    <body>
    <?php
    include("funzione_perc_ctr_dip.php");
    aliquote_ctr_dip( $_POST['numero3'] );
    $numero1=$_POST['numero1'];

    if ($_POST['numero3']=="")
    $result="$no";

    elseif
    ($_POST['numero3']=="commercio_imp")
    $result=$numero1-$numero1*$perc_impiegati/100;
    elseif
    ($_POST['numero3']=="pubblici_esercizi_imp")
    $result=$numero1-$numero1*$perc_impiegati/100;
    elseif
    ($_POST['numero3']=="commercio_op")
    $result=$numero1-$numero1*$perc_operai/100;

    elseif
    ($_POST['numero3']=="pubblici_esercizi_op")
    $result=$numero1-$numero1*$perc_operai/100;
    echo "<br>";
    echo "LORDO IRPEF";
    echo "<br>";
    echo $result

    ?>
    </body>
    </html>

    Grazie ancora!