- Home
- Categorie
- Coding e Sistemistica
- PHP
- Recupero dati da un form generato da un ciclo while
-
Recupero dati da un form generato da un ciclo while
Ciao a tutti, eccomi qui per un altro problema che non riesco a risolvere nonostante mi stia arrovellando da un bel po'.
Con una query select e un ciclo while recupero dei dati dal db, che vanno a formare enne numero di form per i quali devo dare un solo submit.
Esempio:
<? while ($valore=mysql_fetch_array($query)){
$ID=$valore["ID"];
$ABILITA=$valore["ABILITA"];
$GRADI=$valore["GRADI"];//a ciascuna $ABILITA viene associato un campo per poter aumentare i gradi
<input type="hidden" name="ID_ABIL" value="<?=$ID?>" id="ID_ABIL">
<input type="text" name="ABIL" value="<?=$ABILITA?>" id="ABIL">
<input type="text" name="GRADIATTUALI" value="<?=$GRADI?>" id="GRADIATTUALI">
<input type="button" value=" - " onClick="javascript:this.form.ASSEGNA.value--;" class="tChiaro"> <input type="text" name="ASSEGNA" value="0" size="3" class="tChiaro" onChange="update();" id="ASSEGNA"> <input type="button" value=" + " onClick="javascript:this.form.ASSEGNA>.value++;" class="tChiaro">// praticamente io ho, nella pagina php, un elenco di abilità con accanto i tastini + e - per poter assegnare enne gradi, e poi andare a fare l'update nel db del campo $GRADI
Come posso fare per far capire al sistema di prelevare i dati di tutte le righe, e di assegnare il valore di ASSEGNA all'abilità giusta, identificata dal campo ID?
Mi era capitato un problema simile, ma in quel caso avevo solo un campo da trasportare e ho risolto con un array del tipo $campo[]
Ma qua sono due, considerando anche che non tutte le abilità verranno incrementate, e quindi nella ricezione dei dati del post vorrei escludere quei valori di ASSEGNA = 0.
Spero di essermi spiegata, e grazie in anticipo!
-
Ciao Vento e benvenuto nel Forum GT
Credo ci aver capito a che serva
Mi sorge una domanda: a che ti serve questo?
[html] <input type="text" name="ABIL" value="<?=$ABILITA?>" id="ABIL">[/html]c'è la possibilità di assegnare un testo qualsiasi all'abilita'?diversamente potresti semplicemente assegnare l'id abilità al name e quindi, snellendo un bel po, recuperarti gli id abilità con i relativi valori nuovi.
[php] <? while ($valore=mysql_fetch_array($query)){
$ID=$valore["ID"];
$ABILITA=$valore["ABILITA"];
$GRADI=$valore["GRADI"];
?><p><?=$ABILITA?>
<input type="text" name="<?=$ID?>" value="<?=$GRADI?>" id="<?=$ID?>">
<input type="button" value=" - " onClick="javascript:this.form.<?=$ID?>.value--;" class="tChiaro">
<input type="button" value=" + " onClick="javascript:this.form.<?=$ID?>.value++;" class="tChiaro">
</p>
<?
}
?>[/php]in questo modo dovrai solo recuperarti i dati che hanno come name l'id abilitàSpero di aver capito il problema, facci sapere
-
No in effetti non c'è la possibilità di assegnare un testo, così è molto più logico! ^_^
Ma poi come faccio a recuperare tutti i dati di ciascuna riga di form che mi viene creata dal ciclo while, e buttarli in db?Intanto grazie!!
-
Immagino che gli id delle abilità siano consecutivi e che tu sappia quanti sono, giusto?
basta che cicli gli id recuperando i valori postati, salvando il tutto in un array, alla fina prendi il contenuto dell'array e lo inserisci nel Db
[php] for ($i=1, $i<=8, $i++) // immaginando che siano 8 abilità
{
$array*=$_POST*;
}[/php]Una volta che hai l'array puoi inserire i dati relativi nel Db
Volendo puoi farlo anche direttamente
[php]for ($i=1, $i<=8, $i++) // immaginando che siano 8 abilità
{
$sql="UPDATE abilita SET value='".$_POST*."' WHERE id='$i'";
$query=@mysql_query etc etc etc.
}[/php]
-
Non c'è un numero esatto, perchè le condizioni da soddisfare variano da utente a utente.... però potrei mettere un mysql_num_rows per trovare una variabile che mi dia il totale, e quindi far diventare il ciclo
($i=1, $i<=$MAXAB, $i++)Grazie! ^__^