Ma allora se è un input type text, xkè usi un'array?? Quanti input type chiamati Quantita hai?
Ma allora se è un input type text, xkè usi un'array?? Quanti input type chiamati Quantita hai?
ho usato un array perke' i campi quantita' variano da pagina a pagina a seconda del contenuto del db...
La vita sarebbe piu' facile se avessi il codice sorgente!
form di invio...
pagina di ricezione...codice:<table border="1" bgcolor="#DCDFF2" bordercolor="#2e2e2e" width=100%> <th>Codice</th><th>Voce</th><th>Var 1</th><th>Var 2</th><th>Unita' di misura</th><th>Prezzo</th><th>Aggiungi a preventivo</th> <? $risultato = mysql_query("SELECT * FROM ".$_POST['db']."") or die("Query db non valida: " . mysql_error()); $i=0; while ($riga = mysql_fetch_object($risultato)) { ?><tr><td height="75" align="center"><input type="text" size="20" name="Codice[<? echo $i; ?>]" value="<? echo $riga->Codice;?>" readonly> </td><? ?><td height="150" align="center"><textarea name="Voce[<? echo $i; ?>]" cols="40" rows="10" readonly><? echo $riga->Voce;?> ></textarea> </td><? ?><td height="75" align="center"><textarea name="Var1[<? echo $i; ?>]" cols="10" rows="10" readonly><? echo $riga->Var1;?></textarea> </td><? ?><td height="75" align="center"><textarea name="Var2[<? echo $i; ?>]" cols="10" rows="10" readonly><? echo $riga->Var2;?></textarea> </td><? ?><td height="75" align="center"><textarea name="Unita[<? echo $i; ?>]" cols="10" rows="1" readonly><? echo $riga->Unitadimisura;?></textarea> </td><? ?><td height="75" align="center"><input type="text" size="5" name="Prezzo[<? echo $i; ?>]" value="<? echo $riga->Prezzo;?>"readonly> </td><? ?><td height="75" align="center" valign="middle"> <font size="5"><input type="text" size="4" name="Quantita[<? echo $i; ?>]" value="<? echo $quantita?>" > </td><? $i++; } mysql_free_result($risultato); mysql_close($connessione); ?> </table> <center> <table align=center width="35%" border=0> <td align=center><input name="submit" type="submit" value="invia"></td> <td align=center><input type="reset" value="Reset"></td> </table></center>
come "dire" a php di trasformare il valore di un array in un intero... con i CAST ho gia' provato...codice:<? require('connessione.php'); if ($_POST['azione'] == "Indietro") { echo('<meta http-equiv="refresh" content="2; url=./scelta.php" />'); exit; } for($i=0,$dim=sizeof($_POST['Codice']),$j=0,$dimj=sizeof($_POST['Quantita']);$i<$dim,$j<$dimj;$i++,$j++) { // controllo campi $qta = trim($_POST['Quantita'][$i]); $qta = (int)$qta; if(!preg_match('/^[\d]+$/', $qta)) { echo "<center> <font size=6>Il valore immesso nel campo Quantità non è numerico</font></center>"; echo('<meta http-equiv="refresh" content="2; url=./aggiungi.php?'.$_POST['db1'].'&'.$_POST['pag1'].'" />'); exit; } } ?> <html> <head> <title>Preventizzazione ON-LINE</title> </head> <body link="#000000" alink="#FFFFFF" vlink="#BC7976" bgcolor="#ebe9e9"> <form name="prova"action="./conferma.php" method="POST"> <center> <font size=6> <? echo $_POST['pag1']?></font> <center><input type="hidden" size="50" name="pag" value="<? echo $_POST['pag1']?>" readonly align="middle"> <table border="1" bordercolor="#FFFFFF" width="100%" bgcolor="dcdff2"> <th>Codice</th><th>Voce</th><th>Var 1</th><th>Var 2</th><th>Unità di misura</th><th>Prezzo</th><th>Prezzo C.C.</th><th>Quantità</th><th>Totale</th> <? for($i=0,$dim=sizeof($_POST['Codice']),$j=0,$dimj=sizeof($_POST['Quantita']);$i<$dim,$j<$dimj;$i++,$j++) { if ($_POST['Quantita'][$j]!=0) { $risultato =mysql_query("SELECT Codice, Titolo, Voce, Var1, Var2, Unitadimisura, Prezzo, Quantita,(Prezzo * '".$_POST['Quantita'][$j]."') AS Totale FROM ".$_POST['db1']." where Codice='".$_POST['Codice'][$i]."'") or die("Query non valida".mysql_error()); while ($riga = mysql_fetch_object($risultato)) { $Totale=$_POST['Quantita'][$i]*$riga->Prezzo; if($Totale!=0) { ?><tr><td height="75" align="center"><input name="Codice[]" size=20 type="text" value="<? echo $_POST['Codice'][$i].'';?> " readonly> </td><? ?><input type="hidden" name="Titolo[]" value="<? echo $riga->Titolo;?>" readonly><? ?><td height="75" align="center"><textarea name="Voce[]" cols="25"><? echo $_POST['Voce'][$i].'';?></textarea> </td><? ?><td height="75" align="center"><textarea name="Var1[]" cols="10" rows="2"><? echo $_POST['Var1'][$i].'';?></textarea> </td><? ?><td height="75" align="center"><textarea name="Var2[]" cols="10" rows="2"><? echo $_POST['Var2'][$i].'';?></textarea> </td><? ?><td height="75" align="center"><input name="Unitadimisura[]" size=8 type="text" value="<? echo $riga->Unitadimisura;?>" readonly> </td><? ?><td height="75" align="center"><input name="Prezzo[]" size=10 type="text" value="<? echo $_POST['Prezzo'][$i].'';?>"> </td><? ?><td height="75" align="center"><input name="Prezzocc[]" size=10 type="text" value="<? echo $riga->Prezzo;?>" readonly> </td><? ?><td height="75" align="center"><input name="Quantita[]" size="6" type="text" value="<? echo $_POST['Quantita'][$i].'';?> "> </td><? ?><td height="75" align="center"><input name="Totale[]" size=10 type="text" value="<? echo $Totale;?>" readonly> </td></tr><? } } } } ?> </table> <table align=center width="30%" border=0> <td align=center><input type="submit" value="Conferma"></td> <td align=center><input type="reset" value="Reset"></td> <td align=center><input type="submit" value="Indietro" name="azione"></td> <? mysql_close($connessione); ?> </form> </body> </html>
ho provato anche intval(); ma non funziona... is_numeric(); is_int(); ecc... vedono il valore che gli passo come array quindi non funzionano...
comeposso fare questo dannato controllo sul tipo immesso dell'utente?!?!?
![]()
La vita sarebbe piu' facile se avessi il codice sorgente!
Perchè invece di mettere name="Quantita[<?php echo $i; ?>]" non metti name="Quantita<?php echo $i; ?>". Così non usi un array e le variabili del post si chiameranno semplicemente $_POST['Quantita1'], $_POST['Quantita2'] ecc...???
non cambierebbe nulla... sarebbero cmq in un' array...
La vita sarebbe piu' facile se avessi il codice sorgente!
up
La vita sarebbe piu' facile se avessi il codice sorgente!
ma non hai ancora risolto....???? mi sono perso qualcosa.Originariamente inviato da zip2k
up
stampa l'array.
echo "<pre>";
print_r($_POST);
vedendo la composizione dell'array sara' molto piu' chiaro quel che bisogna fare. Altrimenti spariamo solo nel mucchio.
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Guarda che se le chiami Quantita1, Quantita2 ecc. non sono assolutamente un array. Sarebbero diverse stringhe, ma non array.
ecco la stampa del POST
5 e' la qta che ho inseritocodice:Array ( [pag1] => opere_edili_nuovo [db1] => opere_edili_nuovo_mano_opera [Codice] => Array ( [0] => 1.1.1 [1] => 1.1.2 [2] => 1.1.3 [3] => 1.1.4 [4] => 1.1.5 ) [Voce] => Array ( [0] => Operaio specializzato (carpentiere, muratore, ferraiolo) > [1] => Operaio qualificato (carpentiere, muratore, ferraiolo) > [2] => Operaio comune > [3] => Autista meccanico, gruista meccanico > [4] => Autista conducente, gruista operatore > ) [Var1] => Array ( [0] => [1] => [2] => [3] => [4] => ) [Var2] => Array ( [0] => [1] => [2] => [3] => [4] => ) [Unita] => Array ( [0] => all'ora [1] => all'ora [2] => all'ora [3] => all'ora [4] => all'ora ) [Prezzo] => Array ( [0] => 29.37 [1] => 27.64 [2] => 25.37 [3] => 29.37 [4] => 27.64 ) [Quantita] => Array ( [0] => 5 [1] => [2] => [3] => [4] => ) [submit] => invia ) Array ( [pag1] => opere_edili_nuovo [db1] => opere_edili_nuovo_mano_opera [Codice] => Array ( [0] => 1.1.1 [1] => 1.1.2 [2] => 1.1.3 [3] => 1.1.4 [4] => 1.1.5 ) [Voce] => Array ( [0] => Operaio specializzato (carpentiere, muratore, ferraiolo) > [1] => Operaio qualificato (carpentiere, muratore, ferraiolo) > [2] => Operaio comune > [3] => Autista meccanico, gruista meccanico > [4] => Autista conducente, gruista operatore > ) [Var1] => Array ( [0] => [1] => [2] => [3] => [4] => ) [Var2] => Array ( [0] => [1] => [2] => [3] => [4] => ) [Unita] => Array ( [0] => all'ora [1] => all'ora [2] => all'ora [3] => all'ora [4] => all'ora ) [Prezzo] => Array ( [0] => 29.37 [1] => 27.64 [2] => 25.37 [3] => 29.37 [4] => 27.64 ) [Quantita] => Array ( [0] => 5 [1] => [2] => [3] => [4] => ) [submit] => invia ) Array ( [pag1] => opere_edili_nuovo [db1] => opere_edili_nuovo_mano_opera [Codice] => Array ( [0] => 1.1.1 [1] => 1.1.2 [2] => 1.1.3 [3] => 1.1.4 [4] => 1.1.5 ) [Voce] => Array ( [0] => Operaio specializzato (carpentiere, muratore, ferraiolo) > [1] => Operaio qualificato (carpentiere, muratore, ferraiolo) > [2] => Operaio comune > [3] => Autista meccanico, gruista meccanico > [4] => Autista conducente, gruista operatore > ) [Var1] => Array ( [0] => [1] => [2] => [3] => [4] => ) [Var2] => Array ( [0] => [1] => [2] => [3] => [4] => ) [Unita] => Array ( [0] => all'ora [1] => all'ora [2] => all'ora [3] => all'ora [4] => all'ora ) [Prezzo] => Array ( [0] => 29.37 [1] => 27.64 [2] => 25.37 [3] => 29.37 [4] => 27.64 ) [Quantita] => Array ( [0] => 5 [1] => [2] => [3] => [4] => ) [submit] => invia ) Array ( [pag1] => opere_edili_nuovo [db1] => opere_edili_nuovo_mano_opera [Codice] => Array ( [0] => 1.1.1 [1] => 1.1.2 [2] => 1.1.3 [3] => 1.1.4 [4] => 1.1.5 ) [Voce] => Array ( [0] => Operaio specializzato (carpentiere, muratore, ferraiolo) > [1] => Operaio qualificato (carpentiere, muratore, ferraiolo) > [2] => Operaio comune > [3] => Autista meccanico, gruista meccanico > [4] => Autista conducente, gruista operatore > ) [Var1] => Array ( [0] => [1] => [2] => [3] => [4] => ) [Var2] => Array ( [0] => [1] => [2] => [3] => [4] => ) [Unita] => Array ( [0] => all'ora [1] => all'ora [2] => all'ora [3] => all'ora [4] => all'ora ) [Prezzo] => Array ( [0] => 29.37 [1] => 27.64 [2] => 25.37 [3] => 29.37 [4] => 27.64 ) [Quantita] => Array ( [0] => 5 [1] => [2] => [3] => [4] => ) [submit] => invia ) Array ( [pag1] => opere_edili_nuovo [db1] => opere_edili_nuovo_mano_opera [Codice] => Array ( [0] => 1.1.1 [1] => 1.1.2 [2] => 1.1.3 [3] => 1.1.4 [4] => 1.1.5 ) [Voce] => Array ( [0] => Operaio specializzato (carpentiere, muratore, ferraiolo) > [1] => Operaio qualificato (carpentiere, muratore, ferraiolo) > [2] => Operaio comune > [3] => Autista meccanico, gruista meccanico > [4] => Autista conducente, gruista operatore > ) [Var1] => Array ( [0] => [1] => [2] => [3] => [4] => ) [Var2] => Array ( [0] => [1] => [2] => [3] => [4] => ) [Unita] => Array ( [0] => all'ora [1] => all'ora [2] => all'ora [3] => all'ora [4] => all'ora ) [Prezzo] => Array ( [0] => 29.37 [1] => 27.64 [2] => 25.37 [3] => 29.37 [4] => 27.64 ) [Quantita] => Array ( [0] => 5 [1] => [2] => [3] => [4] => ) [submit] => invia )
La vita sarebbe piu' facile se avessi il codice sorgente!
Quindi in $_POST['quantita'] hai il solo valore [0]
bene ora... come scorri questo $_POST['quantita'] ???? In altre parole come lo determini [$i] ???
E perche' visualizzi 5 volte gli stessi dati?
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.