giocala88 (Normal User)
Expert
Messaggi: 248
Iscritto: 23/04/2008
|
Salve ragazzi ho un piccolo problema.
Ho postato 2 funzioni: una stampa 5 form di inserimento, la seconda dovrebbe acquisire i valori inseriti nel form. Qui nasce proprio il problema, come faccio a far acquisire 5 valori differenti con $_POST ???
Codice sorgente - presumibilmente PHP |
<?php // funzione che visualizza 5 form function print_form_giocatore() { ?> <br/> <?php // ciclo per 5 volte, num max e min, il form di inserimento giocatori for($i = 1; $i <= 5; $i++) { ?> <br/> <form name="form_giocatore" method="post" action=""> <label><?php echo "<font face='verdana' color='black' size ='3'> <b>GIOCATORE</b>"; ?><br/> <input name="nome" type="text" /> <?php echo "<font face='verdana' color='black' size ='2'> nome"; ?><br/> </label> <label> <input name="cognome" type="text" /> <?php echo "<font face='verdana' color='black' size ='2'> cognome"; ?><br/> </label> <label> <input name="gg" type="text" size="1" maxlength="2" /> - </label> <label> <input name="mm" type="text" size="1" maxlength="2" /> - </label> <label> <input name="aaaa" type="text" size="4" maxlength="4" /> <?php echo "<font face='verdana' color='black' size ='2'> data di nascita"; ?><br/> </label> <label> <input name="luogo_nascita" type="text" /> <?php echo "<font face='verdana' color='black' size ='2'> luogo di nascita"; ?><br/> </label> <label> <input name="cittadinanza" type="text" /> <?php echo "<font face='verdana' color='black' size ='2'> cittadinanza"; ?><br/> </label> <label> <input name="peso" size="1" maxlength="2" /> <?php echo "<font face='verdana' color='black' size ='2'> peso"; ?><br/> </label> <label> <input name="altezza" type="text" size="1" maxlength="3" /> <?php echo "<font face='verdana' color='black' size ='2'> altezza"; ?><br/> </label> <?php } ?> <br/> <input name="Carica" type="submit" value="Carica le informazioni" /> </form> <?php } ?>
|
Codice sorgente - presumibilmente PHP |
<?php // dichiaro la funzione che permette l'inserimento dei giocatori function add_new_giocatori() { // ciclo gli n giocatori for($i = 1; $i <= 5; $i++) { //recupero i campi di tipo stringa per query giocatore da POST $nome$i = trim($_POST['nome']); $cognome$i = trim($_POST['cognome']); $luogo_nascita$i = trim($_POST['luogo_nascita']); $cittadinanza$i = trim($_POST['cittadinanza']); //verifico se devo eliminare gli slash inseriti automaticamente //record query stadio } //query giocatore // recupero i rimanti campi del form $aaaa$i = intval($_POST['aaaa']); $peso$i = intval($_POST['peso']); $altezza$i = intval($_POST['altezza']); //preparo la query giocatore $query_giocatore = mysql_query("INSERT INTO giocatore (nome, cognome, data_nascita, luogo_nascita, cittadinanza, peso, altezza) VALUES ('$nome$i', '$cognome$i', '$aaaa$i-$mm$i-$gg$i', '$luogo_nascita$i', '$cittadinanza$i', '$peso$i', '$altezza$i')"); // controllo l'esito if(!$query_giocatore) { // visualizzo un mex di errore echo "<br/>" . "<ul>" . "<font face='verdana' color='black' size ='2'> <b>WARNING : </b> I dati inseriti sono gia' registrati nei nostri database ." . "<br/>" . "Errore nella query $query_giocatore: " . mysql_error(); } // altrimenti, gestisco l'esito corretto else { // visualizzo un messaggio echo "<br/><br/>" . "<ul>" . "<font face='verdana' color='black' size ='2'> Giocatore inserito correttamente <b> ( i ) </b>." . "</ul>"; } } //chiudo la connessione a MYSQL } ?>
|
Ho provato a fare in questo modo mi da il seguente errore
syntax error, unexpected T_VARIABLE indicandomi la linea
$nome$i = stripslashes($nome);
Qualcuno sa darmi una soluzione? ... grazie. |
|
TheKaneB (Member)
Guru^2
Messaggi: 1792
Iscritto: 26/06/2009
|
usa degli array...
la sintassi corretta non è $variabile$indice, ma $variabile[$indice]
tanti saluti
|
|
giocala88 (Normal User)
Expert
Messaggi: 248
Iscritto: 23/04/2008
|
Scusami tanto ma mi spiegheresti perchè mi visualizza solo l'ultimo elemento inserito?
Per semplificare le cose ti ho postato un codice riduttivo.
Codice sorgente - presumibilmente Php |
<?php if(isset($_POST['nome'])) { // invoco la funzione che inserisce i records query stadio e squadra add_new_sq(); } // altrimenti, controllo l'esito: i campi non sono stati digitati else { // invoco la funzione che visualizza un form di inserimento records query stadio print_form_sq(); } ?> <?php // dichiaro una funzione che inserisce i records query stadio e squadra function add_new_sq() { $a = print_form_sq($a); for($i = 0; $i < 2; $i++) { echo "$i : $a[$i]<br/>";} } ?> <?php // dichiaro una funzione che visualizza un form di inserimento records query stadio e squadra function print_form_sq() { ?> <br/> <?php for($i = 1; $i <= 2; $i++) { ?> <form name="form_squadra" method="post" action=""> <label><?php echo "<font face='verdana' color='black' size ='3'> <b>STADIO</b>"; ?><br/> <input name='nome' type='text' /> <?php echo "<font face='verdana' color='black' size ='2'> nome$i"; ?><br/> </label> <?php $nome[$i] = $_POST['nome']; $a[] = "$nome[$i]"; } ?> <br/> <input name="Carica" type="submit" value="Carica le informazioni" /> </form> <?php return($a); } ?>
|
Ringranzio ancora...
Ultima modifica effettuata da giocala88 il 12/02/2010 alle 22:42 |
|
antometal (Member)
Guru
Messaggi: 691
Iscritto: 12/09/2007
|
forse perchè nella funzione print_form_sq(), il tag <form> si trova all' interno del for, invece </form> si trova all' esterno
in questo modo (puoi verificare vedendo l' html di output) apre 5 form, ma ne chiudi uno solo
|
|
giocala88 (Normal User)
Expert
Messaggi: 248
Iscritto: 23/04/2008
|
No antometal non va... com'è possibile???...ufff
Qualche alternativa??
Grazie a tutti ...
|
|
antometal (Member)
Guru
Messaggi: 691
Iscritto: 12/09/2007
|
prova così per tutti gli oggetti del form, tranne per il submit
<input name='nome[]' ....
altrimenti potresti aggiungere al nome anche l' indice
<input name='nome_<?=$i?>' ....
|
|
giocala88 (Normal User)
Expert
Messaggi: 248
Iscritto: 23/04/2008
|
Niente antometal. Allora
<input name='nome[]' ....
non va -> risultato Array Array
il secondo metodo non mi visualizza niente....bah?!
|
|
antometal (Member)
Guru
Messaggi: 691
Iscritto: 12/09/2007
|
Postato originariamente da giocala88:
Niente antometal. Allora
<input name='nome[]' ....
non va -> risultato Array Array
il secondo metodo non mi visualizza niente....bah?!
|
invece funziona il primo metodo
restituisce array perchè ci sono + valori del tipo: $_POST['nome'][0]
nella pagina di destinazione del form metti:
print_r($_POST['nome'])
deve stampare tutti i valori dei campi nome |
|
giocala88 (Normal User)
Expert
Messaggi: 248
Iscritto: 23/04/2008
|
Intendi dire questo?
Codice sorgente - presumibilmente PHP |
<?php // dichiaro una funzione che visualizza un form di inserimento records query stadio e squadra function print_form_sq() { ?> <form name="form_squadra" method="post" action=""> <br/> <?php for($i = 1; $i <= 2; $i++) { ?> <label><?php echo "<font face='verdana' color='black' size ='3'> <b>STADIO</b>"; ?><br/> <input name='nome[$i]' type='text' /> <?php echo "<font face='verdana' color='black' size ='2'> nome$i"; ?><br/> </label> <?php $nome[$i] = print_r($_POST['nome']); $a[] = "$nome[$i]"; } ?> <br/> <input name="Carica" type="submit" value="Carica le informazioni" /> </form> <?php return($a); } ?>
|
Mi visualizza questo (cioè il secondo elemento):
Array ( [$i] => rob2 )
Array ( [$i] => rob2 )
0 : 1
1 : 1
... mi posteresti il codice perpiacere?
Sto impazzendo....
Grazie ancora...soprattutto per la pazienza
Ultima modifica effettuata da giocala88 il 13/02/2010 alle 0:12 |
|