Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Moltiplicazione tra form

    Ciao a tutti,
    ho un form che si duplica N volte a seconda dell'input dato dall'utente (n_ripetizione), in questo form ho 3 campi (il terzo mi deve dare la moltiplicazione tra i primi due):

    Codice PHP:
    <form name="info" method="post" action="?action=go">
    <?
    for($i 0$i <= $_POST["n_ripetizione"]; $i ++){
    ?>
    Primo <input type="text" name="primo[]" />
    Secondo <input type="text" name="secondo[]" />

    <?
    if(isset($_GET["mode"]) && $_GET["mode"] == "calcola"){
    $totale[$i] = ($_POST["primo"][$i] * $_POST["secondo"][$i]);
    ?>
    Risultato <input type="text" name="risultato[]" value="<? echo $totale[$i]; ?>"  />
    <?
    } else {
    ?>
     Risultato <input type="text" name="risultato[]" />
    <?
    }
    ?>
    <input type="submit" name="calcola" value="Calcola risultato"onclick="this.form.action='?mode=calcola';this.form.submit();" />
    <?
    }
    ?>
    </form>
    Ovviamente non funziona
    dove sbaglio?

  2. #2
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Sbagli nel fatto che hai mescolato la parte che genera il form con quelle che fa i calcoli.
    Prima va generato il form e dopo il submit vanno effettuati i conti.

  3. #3
    ma io voglio effettuare il calcolo nel form stesso, anche senza il submit magari con un evento onRelease
    l'importante è che il calcolo venga effettuato nel form stesso

  4. #4
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Allora hai fatto un po' di confusione:
    PHP viene eseguito solo sul server e quindi, perchè possa "lavorare", devi fare un invio (submit) dei dati del form al tuo script.

    Se vuoi che lo moltiplicazione venga fatta senza submit, devi usare un linguaggio di programmazione che funzioni a livello client (ad esempio Javascript).

  5. #5
    Hai ragione, ma infatti io utilizzo il tasto 'submit' come nel codice:

    <input type="submit" name="calcola" value="Calcola risultato"onclick="this.form.action='?mode=calcola ';this.form.submit();" />

  6. #6
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Mi dici in che modo "non funziona" così cerco di aiutarti?

  7. #7
    In pratica all'invio del pulsante si attiva questo pezzo di codice sempre nello stesso form, dovrebbe farmi il calcolo tra il primo ed il secondo campo e stamparmelo nel terzo, ho inserito tutto in un array perchè devo conservare le informazioni dato che i campi si generano N volte.

    Codice PHP:
    <?
    $p 
    0;
    if(isset(
    $_GET["mode"]) && $_GET["mode"] == "calcola"){
     
    $primo       $_POST["primo"];
     
    $secondo   $_POST["secondo"];
     
    $tot          = (int)$primo * (int)$secondo;
     
    $total_array[] = array('tot' => $tot[$p]);
    ?>
     <input type="text" name="totale[]" maxlength="7" value="<? echo $tot[$p]; ?>" />
    <?
     $p 
    ++;
    } else {
    ?>
     <input type="text" name="total_cost[]" maxlength="7" />
    <?
     
    }
    ?>
    <input type="submit" name="calcola" value="Calcola" onclick="this.form.action='?mode=calcola';this.form.submit();" />

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.