ciao gente.
sto costruendo una paginetta con un pò di ajax.
l'utente genera dei campi che vicino hanno degli input text.
usando ajax riesco a fare quasi tutto, solo che se l'utente AGGIUNGE altri campi, usando un semplice innerHTML, i campi del form si resettano.
ho pensato di usare allora l'aggiunta coi DOM, creando nella pagina php che elabora i risultati, invece di un valore secco, una stringa javascript che crea i figli e dovrebbe inserirli al punto giusto.
solo che se uso innerHTML per visualizzare il "responseText" o document.write, mi visualizza la stringa invece che la formattazione!
codice:
ajax.js
function stateChanged() {
if (xmlHttp.readyState==4 || xmlHttp.readyState == "complete"){
// iH = document.getElementById("nomi_generati").innerHTML;
//document.getElementById("nomi_generati").innerHTML = xmlHttp.responseText;
document.write(xmlHttp.responseText) ;
}
// iH = document.getElementById("nomi_generati").innerHTML;
}
le righe commentate erano la versione precedente, quella che appendeva il contenuto con innerHTML, ma che si perdeva i valori degli input field.
Codice PHP:
pagina server
$Otabella = "var col = document.createElement(\"TD\");
col.setAttribute('style', 'width: 50%');
col.setAttribute('valign','center');
col.innerHTML = ".($nome)."-".($cognome)."
var riga = document.createElement(\"TR\");
var hid = document.createElement(\"INPUT\");
hid.setAttribute('type','hidden');
hid.setAttribute('name','hid_nome_$n');
hid.value = ".($nome)."-".($cognome).";
var inp = document.createElement(\"INPUT\");
inp.setAttribute('type','hidden');
inp.setAttribute('name','nome_$n');
inp.setAttribute('class','piccolo');
col.AppendChild(hid);
col.AppendChild(inp);
col.innerHTML = [img]immagini/salva_nome.png[/img];
riga.AppendChild(col);
document.getElementById('nomi_generati').AppendChild(riga);
";
echo $Otabella;
così pensavo di appendere al tbody chiato "nomi_generati" le righe che creo.
solo che non mi si visualizzano loro, ma il codice!
ciao e grazie.