- Home
- Categorie
- Coding e Sistemistica
- PHP
- elaborare dati da input dinamiche
-
elaborare dati da input dinamiche
Ciao ragazzi, ho un piccolo problema, in pratica ho una pagina html e con un javascript ho una funzione che cliccando sul tasto aggiungi mi crea degli input, ad esempio se clicco 5 volte sul tasto aggiungi automaticamente si inseriranno 5 campi input. Il mio problema è che quando premo il submit per far elaborare questi campi (da un file php) nel file "ricevi.php" non so come fare a prendermi questi dati non sapendo a priori quanti sono. Per capire ancora meglio vi incollo il codice html:
[php]
<script>
var i=2;
function add(id)
{
campi = document.createElement('div');
campi.id = "mine"; //assegna al div un nome
document.getElementById(id).appendChild(campi);
campi.innerHTML="<tr><td><input type="text" name="campo"+i+""></td><td><input type="text" name="valore"+i+""></td></tr>";
i++;
}
</script><center>
<form action="ricevi.php" method="GET">
<table border=0>
<tr>
<td>valore</td>
<td>testo</td>
</tr>
<tr>
<td>
<input type="text" name="campo1">
</td>
<td>
<input type="text" name="valore1">
</td>
</tr>
<tr><td colspan=2>
<div id="prova"> </div>
</td></tr>
<tr><td colspan=2>
<input type="button" value="aggiungi" onclick="javascript:add('prova');">
</td></tr>
<tr><td colspan=2>
<input type="submit" value="Genera">
</td></tr>
</table>
</form>
</center>
[/php]
come potete vedere nella pagina php gli arriveranno dei valori mandati con il get, come faccio a prenderli? I valori potranno essere 5 ma potranno essere anche 10.
Spero in un vostro aiutoGrazie
Matt86
-
portesti crearti un contatore in javascript, o usare i campi come array, oppure fare un ciclo while sulla variabile $_GET
-
[php]
$i = 0;
while(isset($_POST['campo'.$i]))
{
// Le operazioni da fare per ogni input
$i++;
}
[/php]
-
Grazie Thedarkita,
funziona tutto :), adesso però ho un altro piccolo problema, ho creato la pagina inserisci, leggi e modifica, ma su quest' ultima non rieco a modificare l'immagine, potresti dargli un occhiata?Grazie
Matt86
-
Intanto il campo ID del database devi inserirlo come autoincrement altrimenti rimane sempre 0 e quindi non ha senso inserirlo...
per fare la query di modifica puoi usare il ciclo di prima mettendo come operazione
[php]
mysql_query("UPDATE inv SET campo='$campo', valore = '$valore' WHERE id = '$i'"
[/php]devi comunque prima portare il campo id su autoincrement altrimenti hanno tutti lo stesso id e la query li modifica tutti...
-
Ciao Thedarkita,
innanzitutto grazie per la tua disponibilità, purtroppo pure così non mi funziona
-
Secondo me è conveniente fare che nella pagina leggi.php quando mostra i vari dati presenti nel database ci sia un pulsante modifica che ti mandi a modifica.php?edit=ID_DATABASE
da quella pagina prendi i valori di quel ID e nella query metti WHERE id = '$_GET[edit]'ovviamente dopo che funziona dovrai fermarti un pò sulla sicurezza perchè scritto cosi non è il massimo
in ogni caso questa mi smbra la miglior soluzione
-
Ciao Thedarkita,
purtroppo sono costretto a farlo così perchè questi parametri devono stare insieme.