Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Campi input dinamici

  1. #1

    Campi input dinamici

    Ciao, creo un campo di input file in questo modo
    codice:
    var oTr=document.createElement("TR");
    var oTd1=document.createElement("TD");
    var oTd2=document.createElement("TD");
    
    var oField=document.createElement("input");
    var oText=document.createTextNode("Insceserisci file");
    
    
    oField.setAttribute("type","file");
    oField.setAttribute("name","selFile"+num);
    oField.setAttribute("id","selFile"+num);
    		
    		
    oTd1.appendChild(oField);
    oTd2.appendChild(oText);
    oTr.appendChild(oTd2);
    oTr.appendChild(oTd1);
    		
    document.getElementById('tabella').getElementsByTagName('TBODY')[0].appendChild(oTr);
    Ma poi quando invio il form, non mi ritrovo i dati, utilizzo php. Se invece creo il campo di input file direttamente in html viene correttamente spedito. Non è possibile farlo in questo modo?

  2. #2

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    con normale campo di testo funzionerebbe?

    ricordo dei limiti (bug) al creare e appendere campi via DOM ma non ricordo se fosse questo...

  4. #4
    Originariamente inviato da Xinod
    con normale campo di testo funzionerebbe?

    ricordo dei limiti (bug) al creare e appendere campi via DOM ma non ricordo se fosse questo...
    Ho fatto in un'altro form lo stesso modo, ma non un input file ma un input text, e funziona, è lo stesso ed identico codice. Ho fatto anche, in un'altro form, la duplicazione del campo di input file, e funziona, ma in questo caso il cliente non lo vuole vedere, ma quando deve inserire in file vuole cliccare sul bottone che lo fa visualizzare

  5. #5
    Ho provato anche a creare un div all'interno del tad td della tabella, e poi con questo codice inserire il file

    document.getElementById("addText").innerHTML+="
    Inserisci file <input type=\"file\" name=\"selFile"+num+"\" id=\"selFile"+num+"\" />";

    ma non va ugualmente, non spedisce i dati a php. Questo succede però con firefox, perchè con explorer funziona. Non so propio dove sbattere la testa

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    scusa, adesso ho provato (non con il tuo codice) con IE e FFox ad aggiungere campi di tipo file e i valori vengono normalmente spediti, quindi niente bug

    il resto della pagina?

  7. #7
    Originariamente inviato da Xinod
    scusa, adesso ho provato (non con il tuo codice) con IE e FFox ad aggiungere campi di tipo file e i valori vengono normalmente spediti, quindi niente bug

    il resto della pagina?
    Quale hai provato? il primo? Vuoi che ti posto il resto della pagina? a me funziona solo con IE, ma solo il secondo codice che ho messo

  8. #8
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    butta il secondo perche' non crei effettivamente nodi e elementi per i browser aderenti agli standard

    il primo funziona, in tutto e per tutto uploada il file,
    manca solo l' inizializzazione della variabile num fuori dalla funzione e alla fine un num++ per rendere il nome progressivo

    il problema potrebbe essere altrove, x questo vorrei vedere il resto, tipo
    - manca il <form> o e' ubicato in maniera errata
    - manca enctype="multipart/form-data"

  9. #9
    Originariamente inviato da Xinod
    butta il secondo perche' non crei effettivamente nodi e elementi per i browser aderenti agli standard

    il primo funziona, in tutto e per tutto uploada il file,
    manca solo l' inizializzazione della variabile num fuori dalla funzione e alla fine un num++ per rendere il nome progressivo

    il problema potrebbe essere altrove, x questo vorrei vedere il resto, tipo
    - manca il <form> o e' ubicato in maniera errata
    - manca enctype="multipart/form-data"
    L'inizializzazione della variabhile avviene, io nonn ho postato tutto il codice, a me funziona solo con I, con firefox e opera non va, inserisce i campi nel form, ma non invia i dati a php. Questo è il restante codiece, non guardare i contenuti degli altri campi perchè li c'è php che li genera. Premendo il bottone su inserisci vengono aggiunti e su rimuovi li toglie.
    codice:
    <script language="javascript" type="text/javascript">
    function nuovoFile(){
    if(document.createElement && document.getElementById && document.getElementsByTagName) {
    		var oTr=document.createElement("TR");
    		var oTd1=document.createElement("TD");
    		var oTd2=document.createElement("TD");
    		
    		
    		var oField=document.createElement("INPUT");
    		var oText=document.createTextNode("Seleziona il file");
    		
    		
    		oField.setAttribute("type","file");
    		oField.setAttribute("name","selFile"+num);
    		
    		
    		oTd1.appendChild(oField);
    		oTd2.appendChild(oText);
    		oTr.appendChild(oTd2);
    		oTr.appendChild(oTd1);
    		
    		document.getElementById('tabella').getElementsByTagName('TBODY')[0].appendChild(oTr);
    		
    	num++;	
    }
    return false;
    }
    
    function rimFile(){
    	if(document.removeChild && document.getElementById && document.getElementsByTagName) {
    		// se non e' la prima riga
    		if(num>1){
    			// riferimento al tbody
    			var tb=document.getElementById('tabella').getElementsByTagName('TBODY')[0];
    			// riferimento all'ultimo TR
    			var lastTr=tb.getElementsByTagName('TR')[(tb.getElementsByTagName('TR').length)-1]
    			// rimuovi
    			tb.removeChild(lastTr);
    			// decrementa variabile globale
    			num--
    		}
    	}
    	return false;
    }
    </script>
    <table width="90%" border="1" align="center" cellpadding="0" cellspacing="0">
    <tr> 
    <td>Creazione Nuovo Prodotto</td>
    </tr>
    <tr> 
    <td>
    <table width="80%" border="0" align="center" cellpadding="2" cellspacing="2" id="tabella">
    <tr valign="top"> 
    <td>Categoria: (*)</td>
    <td>
    <form action="index.php?action=new_prodotto" method="post" name="form2" id="form2" enctype="multipart/form-data">
    <select name="id_categoria" id="id_categoria" onchange="document.form2.submit();">
    <option value="" selected>Seleziona</option>
    <?php
    
    ?>
    </select>
    </form>
    </td>
    </tr>
    <form action="index.php?action=new_prodotto_a" method="post" name="form3" enctype="multipart/form-data" onSubmit="return valida_new_prodotto(this)">
    <tr valign="top">
    <td>Sottocategoria: (*)</td>
    <td> <select name="id_sottCat" id="id_sottCat">
    <option value="" selected>Seleziona</option>
    <?php
    
    ?>
    </select>
    <input type="hidden" name="id_categoria" id="id_categoria" value="<?php echo $cat; ?>">
    </td>
    </tr>
    <tr valign="top"> 
    <td>Nome (ITA): (*)</td>
    <td> <input name="nome_ita" type="text" id="nome_ita" maxlength="255"></td>
    </tr>
    <tr valign="top"> 
    <td>Nome (ENG): </td>
    <td> <input name="nome_eng" type="text" id="nome_eng" maxlength="255"></td>
    </tr>
    <?php
    
    ?>
    <tr valign="top"> 
    <td colspan="2">Altre informazioni (ITA): (*)</td>
    </tr>
    <tr valign="top"> 
    <td colspan="2"> <textarea name="descrizione_ita" cols="30" rows="5" id="textarea2"></textarea></td>
    </tr>
    <tr valign="top"> 
    <td colspan="2">Altre informazioni (ENG):</td>
    </tr>
    <tr valign="top"> 
    <td colspan="2"><textarea name="descrizione_eng" cols="30" rows="5" id="textarea3"></textarea></td>
    </tr>
    <tr valign="top"> 
    <td colspan="2">Scegli la foto principale (*):</td>
    </tr>
    <tr valign="top"> 
    <td colspan="2"><select name="foto_grande" id="foto_grande">
    <option selected="selected" value="">Seleziona</option>
    <?
    
    ?>
    </select></td>
    </tr>
    <tr valign="top"> 
    <td colspan="2">Scegli le foto aggiuntive (*):</td>
    </tr>
    <tr valign="top"> 
    <td colspan="2"><select name="foto_aggiuntive[]" id="foto_aggiuntive" size="5" multiple>
    <?php
    ?>
    </select></td>
    </tr>
    <tr>
    <td colspan="2">Inserisci il numero di file <input type="submit" name="rimuoviFile" id="rimuoviFile" value="Rimuovi" onclick="return rimFile();"></td>
    </tr>
    <tr>
    <td><input type="submit" name="invFile" id="invFile" value="Inserisci" onclick="return nuovoFile();"></td><td></td>
    </tr>
    <tbody>
    </tbody>
    <tr valign="top"> 
    <td></td>
    <td> </td>
    </tr>
    <tr valign="top"> 
    <td colspan="2"> (*) Campi Obbligatori</td>
    </tr>
    <tr> 
    <td colspan="2" align="center"> <input type="submit" name="Submit332" value="Crea"></td>
    </tr>
    </form>
    </table>
    </td>
    </tr>
    </table>

  10. #10
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    il tag <form> non puo' spezzare il flusso di una tabella,
    non dovrebbe trovarsi in quella posizione

    anche il tbody e' fuori posto
    normale che non funzioni

    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.