- Home
- Categorie
- Coding e Sistemistica
- PHP
- Moltiplicazione tra form
-
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):[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* = ($_POST["primo"]* * $_POST["secondo"]);
?>
Risultato <input type="text" name="risultato[]" value="<? echo $totale; ?>" />
<?
} 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>[/PHP]Ovviamente non funziona
dove sbaglio?
-
Ciao,
Scusa la curiosità ma quel "<input type="text" name="primo[]" />" viene gestito correttamente? io avrei messo una cosa tipo<?
for($i = 0; $i <= $POST["n_ripetizione"]; $i ++)
{
echo 'Primo <input type="text" name="primo' . $i . '" />';
echo 'Secondo <input type="text" name="secondo_' . $i . '" />';
}
?>Successivamente visto che sai quanti sono esattamente le ripetizioni puoi raccogliere i dati tramite un'altro for in un array.
Idea mia eh[ps: primo post scusate mal scritture e co. ^_^]
-
Mi sa che il tuo metodo è simile al mio, quel campo 'primo[]' lo gestisco appena invio il form con un foreach e funziona correttamente, il problema è gestire l'operazione 'moltiplicazione' all'interno del form stesso.
-
ok
Quindi il cilco che fa il prodotto per ogni coppia non va'?
Sai cosa? non vorrei che fasse un problema di tipodi dato: prova a forzare il dato a intero (o altro se hai numeri con virgola)facendo cosi:$_POST["primo"]* che diventa
(int)$_POST["primo"]*In alcuni miei casi ha aiutato!
-
Nada, ho provato anche cosi:
[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="totale[]" maxlength="7" />
<?
}
?>
<input type="submit" name="calcola" value="Calcola totale" onclick="this.form.action='?mode=calcola';this.form.submit();" />[/php]
-
Se provi a stampare risultati intermedi (es stampi la variabile $tot ad ogni iterazione) ti da il valore corretto? se non te lo da ad ogni iterazione è qualcosa prima che non quadra. Cmq non capisco bene dove inizia il ciclo: per esempio leggo
$tot = ((int)$primo * (int)$secondo);
$total_array[] = array('tot' => $tot[$p]);nella prima riga si setta $tot come variabile che contene un numero.
Nella seconda la usi come un array?
-
Nella seconda inserisco il contenuto di tot nell'array