Notizie: puoi sempre seguire i nostri aggiornamenti su Twitter (@MozillaItalia) e Facebook (/MozillaItalia)

Autore Topic: DOM: non avviene il submit per input generati  (Letto 6056 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline wakan

  • Post: 5
DOM: non avviene il submit per input generati
« il: 12 Gennaio 2005 10:10:51 »
Ciao a tutti...
non so se è il forum giusto...avvisatemi se ho sbagliato :)
Ho una pagina con una tabella ed una riga contenente degli input.
Ogni volta che si clicca su un tasto "+" viene aggiunta una nuova riga a questa tabella, con il metodo
Codice: [Seleziona]
var new_row = row.cloneNode(true); avendo poi l'accortezza di cambiare il tag name di ognuno di questi nuovi input, aggioungendo un _counter al nome originale dell'input, questo per evitare che al submit, tutte le righe si sovrascrivano fra loro...
In tal modo, se ho 2 righe ad esempio, e per ogni riga 1 input, questo si chiamerà campo nella prima riga, campo_1 nella seconda, e così via...
questo è ciò che mi aspetto, ed effettivamente funziona nel maledetto IE...
In forefox purtroppo no: al submit mi ritrovo soltatnto la prima riga (statica, non generata via DOM). Mi sono accertato che passi solo la prima riga, mettendo valori diversi nell'input corrispondente per ogn riga...e passa soltanto il 1°.
Qualcuno potrebbe aiutarmi a capire?...
è il metodo cloneNode che non funziona come io penso? Non è che il nodo clonato in realtà punta allo stesso oggetto?
Ciao

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: DOM: non avviene il submit per input generati
« Risposta #1 il: 12 Gennaio 2005 10:36:55 »
Servirebbe vedere tutto il codice ...puoi fornire il link di questa pagina?
Non è che stai usando le "xml data island" (quelle con il tag datasrc), che funzionano solo su ie?
Ciao, Paolo

Offline flod

  • Amministratore
  • Post: 15057
    • http://www.flod.org
DOM: non avviene il submit per input generati
« Risposta #2 il: 12 Gennaio 2005 10:43:33 »
Direi che è adatto al forum Evengelizzazione

Offline wakan

  • Post: 5
DOM: non avviene il submit per input generati
« Risposta #3 il: 12 Gennaio 2005 10:58:53 »
OK, inserisco la funziona che genera le altre righe...
Codice: [Seleziona]

function add_row() {
var d = document; var new_name;
var row = d.getElementById("row");
var row_num = row.parentNode.childNodes.length;
var new_row = row.cloneNode(true);
new_row.id= "row_" + row_num;
for(i=0; i <= new_row.childNodes.length - 1; i++) {
if(new_row.childNodes[i].nodeName == "TD") {
for(j=0; j <= new_row.childNodes[i].childNodes.length - 1; j++) {
if(new_row.childNodes[i].childNodes[j].nodeName == "SELECT" || new_row.childNodes[i].childNodes[j].nodeName == "INPUT") {
new_name = new_row.childNodes[i].childNodes[j].getAttribute('name') + "_" + row_num;
new_row.childNodes[i].childNodes[j].setAttribute('name',new_name);
}
}
}
}
row.parentNode.appendChild(new_row);
}

la parte html che duplico è questa invece:
Codice: [Seleziona]

<TR id=row>
   <TD noWrap align=right>&nbsp;<? print listbox("ID_art","SELECT descr,ID FROM mag_art WHERE deleted=0 ORDER BY descr"); ?></TD>
   <TD nowrap align=center><INPUT OnKeyDown="set_mode('edit_on')" style="WIDTH: 40px" maxLength=10 name="qta"></TD>
   <TD noWrap align=center><INPUT OnKeyDown="set_mode('edit_on')" style="WIDTH: 50px" maxLength=10 name="prz"></TD>
   <TD noWrap align=center><INPUT OnKeyDown="set_mode('edit_on')" style="WIDTH: 30px" maxLength=5 name="sc_1"></TD>
   <TD noWrap align=center><INPUT OnKeyDown="set_mode('edit_on')" style="WIDTH: 30px" maxLength=5 name="sc_2"></TD>
   <TD noWrap align=center><INPUT OnKeyDown="set_mode('edit_on')" style="WIDTH: 50px" maxLength=10 name="imp"></TD>
</TR>

spero che sia chiara...in ogni caso, grazie per la celere risposta...
non utilizzo "xml data island"...sto cercando di fare una cosa standard...
anzi meglio, sto cercndo di svincolarmi da IE
Ciao e grazie

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
DOM: non avviene il submit per input generati
« Risposta #4 il: 12 Gennaio 2005 13:16:14 »
Ad un'occhiata, non saprei dire, bisognerebbe fare delle prove "sul campo".
Un unico dubbio ce l'avrei su questa riga
Citazione
new_row.id= "row_" + row_num;

magari fai una prova usando setAttribute("id", row_num).
Ma da Strumenti --> Console Javascript non hai degli errori?

Offline wakan

  • Post: 5
DOM: non avviene il submit per input generati
« Risposta #5 il: 12 Gennaio 2005 13:24:19 »
nono, non ho alcun errore....
ed utilizzando il DOM inspector vedo che effettivamente le nuove righe vengono create, e che i nomi degli input nelle nuove righe vengono generati correttamente come dicevo prima, cioè campo_1, campo_2....
Quando faccio submit però (tasto salva) e visualizzo un dump della variabile
HTTP_POST_VARS (con php), si vede che con Firefoz le variabili corrispondenti agli input generati dinamicamente non passano, con IE invece si...
ODIo IE!!!
grazie per le risposte

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
DOM: non avviene il submit per input generati
« Risposta #6 il: 12 Gennaio 2005 14:01:19 »
Citazione da: wakan

Quando faccio submit però (tasto salva) e visualizzo un dump della variabile
HTTP_POST_VARS (con php), si vede che con Firefoz le variabili corrispondenti agli input generati dinamicamente non passano, con IE invece si...


Scusa la domanda ingenua, ma hai provato ad usare la variabile globale $_POST?

Offline wakan

  • Post: 5
DOM: non avviene il submit per input generati
« Risposta #7 il: 12 Gennaio 2005 15:03:02 »
$_POST è $HTTP_POST_VARS...

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
DOM: non avviene il submit per input generati
« Risposta #8 il: 12 Gennaio 2005 16:55:12 »
Citazione da: wakan
$_POST è $HTTP_POST_VARS...


No, la prima forma è quella giusta, l'altra è la vecchia forma che è deprecata.
http://it.php.net/manual/en/language.variables.predefined.php

Offline wakan

  • Post: 5
DOM: non avviene il submit per input generati
« Risposta #9 il: 12 Gennaio 2005 17:03:17 »
è vero...comunque il rusultato non cambia...
le variabili delle righe generate con DOM, pur essendoci nel DOM inspector, non passano.
Ciao, Carlo

0 Utenti e 1 Visitatore stanno visualizzando questo topic.