Newsgroup: it.comp.lang.javascript
Titolo: clonare e dintorni...

Ciao!
Ho il seguente problema: visto che per la mia applicazione ho necessità di 
clonare degli elementi e poi cambiargli alcuni attributi...e visto che questi 
attributi sono parecchi... avevo pensato una cosa che non so se e' fattibile, e 
cioe' mediante XmlHttpRequest fare richiesta al server del pezzo da clonare con 
tutti gli attributi già settati correttamente.
Il mio problema/dubbio e': quando il server mi restituisce tutto il codice da 
agganciare alla pagina ho necessità che questo sia visto come oggetto per poter 
fare un appendChild nel punto corretto...
Quindi la mia domanda e': come posso trasformare quello che mi arriva dal server 
in un oggetto chesso' tipo HTMLTableRowElement? Esiste il modo?
Tutto questo per non appesantire il client caricando tutto il codice da clonare, 
nasconderlo, e poi da javascript cambiargli tutti gli attributi una volta clonato...
Grazie mille!
Viandante

 in un oggetto chesso' tipo HTMLTableRowElement? Esiste il modo?
In Gecko c'è l'oggetto DOMParser(), sfortunatamente il contentType
text/html non è ancora supportato.
Credo che l'unica cosa che fa ciò che chiedi, sia un innerHTML di un
elemento "contenitore" creato ad hoc. Alla peggio se ti fa dei problemi
dover generale un elemento, puoi sempre rimuoverlo successivamente
spostandone i nodi figli allo stesso livello.
-- 
ZER0
~ "Lord Pando è il mio orsacchiotto di pezza.
Si veste di nero, si fa dei tatuaggi in faccia e dice
che è passato al Lato Oscuro, ma secondo me è solo l'adolescenza!"

 
alla peggio...
grassie!
Viandante

 grassie!
Di niente. Ma verifica se è davvero il caso di fare una cosa del genere.
E' raro che non vi siano alternative migliori. Talvolta capita di dover
optare per questo genere di approcci, ma è difficile.


 
Allora... via con la storia :P
Io devo modificare del preventivi... questi preventivi presentano foto e 
descrizione di quello che viene fatto, e ne possono contenere N. Ovviamente sono 
abbiante, cioe' per ogni foto ci sarà la descrizione del lavoro da fare.
Ora... nella creazione del preventivo non ho problemi in quanto le lavorazioni 
(foto+descrizione) vengono compilate una alla volta.
E' per la modifica di un preventivo già fatto che e' nato il mio problema, in 
quanto io carico tutte le lavorazioni assieme e le dispongo in un div che 
appaiono/scompaiono cliccando su un link.
Queste lavorazioni hanno layout comune ovviamente... differiscono solo per la 
foto e i lavori che si fanno su quella foto.
Quindi... una volta fatta la modifica (cioe' aggiungere, cancellare o modificare 
una cosa qualsiasi tra foto o descrizione) ho bisogno di discriminare lato 
server su cosa ho fatto la modifica, quindi per ogni lavorazione ho bisogno di 
associare dei name appropriati... e se generando dal server il preventito 
originale posso farlo, aggiungendo elementi devo farlo lato client in quanto 
l'elemento che clono e' standard mentre a me i name servono relativi alla 
lavorazione alla quale sto aggiugnendo l'elemento.
Ecco quindi perche' devo cambiare potenzialmente un gran numero di name... se 
viene aggiunta un'immagine... questa ha associata diversi campi di informazioni 
relativi ad essa, e nell'elemento che clono i name sono generici o e io li devo 
cambiare mettendoci il riferimento alla lavorazione nella quale l'immagine e' 
stata aggiunta.
Spero di essere stato sufficientemente chiaro :)
Sicuramente ci sono vie piu' rapide... tipo la serie di hidden che dicevo prima, 
ma portando su TUTTI i dati del preventivo dal db, questa soluzione e' quella 
che mi e' venuta prima in mente.
Grassie!
Viandante

 che mi e' venuta prima in mente.
Considera anche l'ipotesi di iframe/object, eventualmente; oltre che
innerHTML.


 
la soluzione di iframe non l'ho neanche presa in considerazione :D, non so 
perche'... probabilmente perche' non mi piacciono molto... eheh...
cmq grazie, sempre gentilissimo :)
Viandante

 cmq grazie, sempre gentilissimo :)
De nada.
-- 
ZER0
~ Legge dell'Inadeguatezza Militare, Corollario
Se un solo robot o astronave combatte contro un intero esercito, l'esercito
perde. (La Fisica nei Cartoni)