PDA

View Full Version : [javascript] form dinamico


njna
28-04-2008, 08:12
Buongiorno a tutti, ho adattato il codice seguente per un form costituito da 5 campi ma non riesco a farlo funzionare, sono ai primi approcci con javascript.
mi date una mano?
si tratta di un form costituito da una riga di 5 campi e cliccando sul pulsante "aggiungi" viene aggiunta una nuova riga al form. cliccando sul pulsante "genera" invece i dati immessi dovrebbero essere inviati alla pagina di gestione "ricevi.php" ma questo non riesce.

di seguito la pagina con il form:



<script language="JavaScript" type="text/javascript">
<!--
var i=2;
function add(){
if(document.createElement && document.getElementById && document.getElementsByTagName) {

var trContenitore=document.createElement("TR");

var tdC1=document.createElement("TD");
var tdC2=document.createElement("TD");
var tdC3=document.createElement("TD");
var tdC4=document.createElement("TD");
var tdC5=document.createElement("TD");

var inputC1=document.createElement("INPUT");
var inputC2=document.createElement("INPUT");
var inputC3=document.createElement("INPUT");
var inputC4=document.createElement("INPUT");
var inputC5=document.createElement("INPUT");


inputC1.setAttribute("type","text");
inputC1.setAttribute("name","c1"+i);

inputC2.setAttribute("type","text");
inputC2.setAttribute("name","c2"+i);

inputC3.setAttribute("type","text");
inputC3.setAttribute("name","c3"+i);

inputC4.setAttribute("type","text");
inputC4.setAttribute("name","c4"+i);

inputC5.setAttribute("type","text");
inputC5.setAttribute("name","c5"+i);

tdC1.appendChild(inputC1);
tdC2.appendChild(inputC2);
tdC3.appendChild(inputC3);
tdC4.appendChild(inputC4);
tdC5.appendChild(inputC5);

trContenitore.appendChild(tdC1);
trContenitore.appendChild(tdC2);
trContenitore.appendChild(tdC3);
trContenitore.appendChild(tdC4);
trContenitore.appendChild(tdC5);

document.getElementById('tabella').getElementsByTagName('TBODY')[0].appendChild(trContenitore);

i++;
}
}

//-->
</script>


<form name="modulo" action="ricevi.php" method="GET">

<table border="0" id="tabella">
<tbody>
<tr>
<td>c1</td>
<td>c2</td>
<td>c3</td>
<td>c4</td>
<td>c5</td>
</tr>
<tr>
<td><input type="text" name="c1" /></td>
<td><input type="text" name="c2" /></td>
<td><input type="text" name="c3" /></td>
<td><input type="text" name="c4" /></td>
<td><input type="text" name="c5" /></td>

</tr>
</tbody>
</table>
<div align="left">
<input type="button" value="aggiungi" onclick="add()"><br>
<input type="submit" value="Genera">
</div>



di seguito il codice che gestisce i dati.. "ricevi.php"


<?

$i=1;
$tempc1="campo1".$i;
$tempc2="campo2".$i;
$tempc3="campo3".$i;
$tempc4="campo4".$i;
$tempc5="campo5".$i;


while(isset($_GET[$tempc1])){

$c1{$i}=$_GET[$tempc1];
$c2{$i}=$_GET[$tempc2];
$c3{$i}=$_GET[$tempc3];
$c4{$i}=$_GET[$tempc4];
$c5{$i}=$_GET[$tempc5];

$i++;

$tempc1="campo1".$i;
$tempc2="campo2".$i;
$tempc3="campo3".$i;
$tempc4="campo4".$i;
$tempc5="campo5".$i;
}

$numeroinput=$i-1;

echo "Numero di input= ".$numeroinput."<br><br>";

for($k=1; $k<=$numeroinput;$k++){

echo "campo".$k."= ".$valore{$k}."<br>";

}


?>



grazie mille in anticipo a tutti

kk3z
28-04-2008, 09:47
i campi li hai chiamati c3[numero], perchè poi cerchi la chiave campo3[numero]?

njna
28-04-2008, 09:55
ciao, guarda io ho adattato solo il codice che ho trovato pensando che se poteva andare per due campi andasse anche con 5..
in sostanza devo avere questo form che inizialmente ha una sola riga con 5 campi. se l'utente vuole clicca su "aggiungi" e aggiunge una nuova riga e così via.. alla fine cliccando su "genera" voglio mandare i dati inseriti in una pagina php per poterli mettere in un db..

se vuoi posto il codice funzionante per due campi