Ciao a tutti.
Sperando che qualcuno sia già incappato in questa tipologia di problema, vi espongo il mio.
Ho avuto la necessità di realizzare un form di inserimento dati, con la possibilità che alcuni campi venissero generati dall'utente in fare di inserimento.
l'esempio in questione, riguarda la compilazione di una scheda di un viaggio, e fin qui il problema non esiste, si presenta al momento che l'agenzia di viaggio inserisce i periodi; quindi: partenza,ritorno e relativo prezzo.
inizialmente la schermata prevede una riga con questi tre campi denominati: partenza[0], ritorno[0] e txt_prezzo[0].
il codice javascript per aggiungere le successive righe che ho utilizzato è il seguente:
ed anche qui tutto bene, gli elementi vengono creati correttamente ed i periodi vengono salvati altrettanto correttamente nel database, mediante altro codice php.codice:var num=1; function accoda(){ if(document.createElement && document.getElementById && document.getElementsByTagName) { // crea elementi var oTr=document.createElement("TR"); var oTd0=document.createElement("TD"); var oTd1=document.createElement("TD"); var oTd2=document.createElement("TD"); var oTd3=document.createElement("TD"); var oField=document.createElement("INPUT"); var oField1=document.createElement("INPUT"); var oField2=document.createElement("INPUT"); var oField3=document.createElement("INPUT"); // setta attributi oField.setAttribute("type","text"); oField.setAttribute("name","partenza["+num+"]"); oField.setAttribute("id","partenza["+num+"]"); oField.setAttribute("size","10"); oField1.setAttribute("type","checkbox"); oField1.setAttribute("name","chk"+num); oField2.setAttribute("type","text"); oField2.setAttribute("name","ritorno["+num+"]"); oField2.setAttribute("id","ritorno["+num+"]"); oField2.setAttribute("size","10"); oField3.setAttribute("type","text"); oField3.setAttribute("name","txt_prezzo["+num+"]"); oField3.setAttribute("id","txt_prezzo["+num+"]"); // appendi al relativo padre oTd0.appendChild(oField1); oTd1.appendChild(oField); oTd2.appendChild(oField2); oTd3.appendChild(oField3); oTr.appendChild(oTd0); oTr.appendChild(oTd1); oTr.appendChild(oTd2); oTr.appendChild(oTd3); document.getElementById('tabella').getElementsByTagName('TBODY')[0].appendChild(oTr); // incrementa variabile globale num++ }
il problema nasce se l'agenzia, di viaggio inserisce ad esempio due periodi, salva l'offerta, ma si accorge di avere bisogno di aggiungere altri periodi accodati ai precedenti, rientra nella schermata, trova all'interno della scheda i due periodi, ma nell'atto di accodarne uno nuovo, il contatore num; utilizzato nel javascript, riparte da 1 e non dall'ultimo ora presente nel form.
Vorrei in sostanza individuare l'ultimo periodo inserito: es partenza[4] e far ripartire il contatore per un nuovo inserimento dal numero 5.
Ho girato come un pazzo "googlando" ed anche all'interno di questo forum, ma non risco a trovare il modo di risolvere l'arcano.
Potete aiutarmi?

Ho girato come un pazzo "googlando" ed anche all'interno di questo forum, ma non risco a trovare il modo di risolvere l'arcano.
Rispondi quotando