Visualizzazione risultati 1 fino 21 di 21

Discussione: Creare un div con js

  1. #1
    Guest

    Exclamation Creare un div con js

    Ciao a tutti!
    Vorrei creare un div con un determinato testo quando viene inviato un form.
    Ho trovato questa funzione
    Codice:
    unction creatediv(id, html, width, height, left, top) {
       var newdiv = document.createElement('div');
       newdiv.setAttribute('id', id);   
       if (width) {
           newdiv.style.width = 300;
       }   
       if (height) {
           newdiv.style.height = 300;
       }   
       if ((left || top) || (left && top)) {
           newdiv.style.position = "absolute";
           
           if (left) {
               newdiv.style.left = left;
           }
           
           if (top) {
               newdiv.style.top = top;
           }
       }   
       newdiv.style.background = "#00C";
       newdiv.style.border = "4px solid #000";   
       if (html) {
           newdiv.innerHTML = html;
       } else {
           newdiv.innerHTML = "nothing";
       }   
       document.body.container.appendChild(newdiv);
    }
    che richiamo nelle mia pagina con
    Codice HTML:
    <form onSubmit="creatediv('div_id','testotesto',200,300,0,0);">
    Il div viene creato benissimo, il problema è che non è nella posizione 0;0, ma alla fine della pagina, sapete dirmi per quale motivo?
    Come risolvo questo problema?
    Grazie in anticipo!

  2. #2
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    document.body.container.appendChild(newdiv);
    Ma container cosa è?
    Puoi mettere un link alla pagina?

  3. #3
    Guest

  4. #4
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Intendevo un link alla tua pagina.
    Poi nel link che hai indicato non c'è container:
    Codice:
    document.body.appendChild(newdiv);

  5. #5
    Guest

    Predefinito

    scusa, ma non fai prima a usare la funzione "Echo" per scrivere qualcosa dopo l'invio del form?

  6. #6
    Guest

    Predefinito

    Scusa, il link è questo:
    http://safefile.altervista.org/
    Quando, creata una cassaforte ci invii un file, appena spedito il file dovrebbe comparire il div co scritto "testo", il div effettivamente appare, ma in fondo alla pagina.

    x sabatinodino

    Grazie del sugerimento, però il codice mi serve per far apparire un messaggio in un div mentre la pagina php viene caricata, dato che il form serve per inviare files fino a 4 Gb, vorrei che apparisse il messaggio "Caricamento" mentre il file viene inviato.

  7. #7
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Invece di :
    Codice:
    document.body.container.appendChild(newdiv);
    Dovresti fare:

    Codice:
    document.getElementById("container").appendChild(newdiv);
    Saluti!

  8. #8
    Guest

    Predefinito

    Grazie mille, purtroppo niente da fare, il div appare sempre e comunque in basso, come se fosse fuori dal body

  9. #9
    Guest

    Predefinito

    Ma grazie, usi append!!
    Codice:
    document.getElementById("container").innerHTML = newdiv + document.getElementById("container").innerHTML;

  10. #10
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Ma è ovvio che comparirà alla fine della pagina dato che lo crei alla fine del tag <div id="container">

    Dove vuoi che appaia???

  11. #11
    Guest

    Predefinito

    Scusatemi: sono solo un principiante del javascript.
    Di preciso come dovrei modificare la funzione?
    Grazie a tutti.

  12. #12
    Guest

    Predefinito

    tel'ho scritto il codice giusto

  13. #13
    Guest

    Predefinito

    Ho visto, però non capisco quale riga della funzione modificare.

  14. #14
    Guest

    Predefinito

    Scusa, mi sembra implicito. Quella che fino ad ora ti dava problemi, ovvero.
    Codice:
    document.getElementById("container").appendChild(newdiv);

  15. #15
    Guest

    Predefinito

    Scusa, te l'ho chiesto perchè avevo ipotizato ch intendessi quella riga, però ancora non funziona:
    L'unico risultato che ottengo è che in alto nella pagina compare
    Codice:
    [object HTMLDivElement]
    e il form non viene inviato;
    Codice:
    function creatediv(id, html, width, height, left, top) {
       var newdiv = document.createElement('div');
       newdiv.setAttribute('id', id);   
       if (width) {
           newdiv.style.width = 300;
       }   
       if (height) {
           newdiv.style.height = 300;
       }   
       if ((left || top) || (left && top)) {
           newdiv.style.position = "absolute";
           
           if (left) {
               newdiv.style.left = left;
           }
           
           if (top) {
               newdiv.style.top = top;
           }
       }   
       newdiv.style.background = "#00C";
       newdiv.style.border = "4px solid #000";   
       if (html) {
           newdiv.innerHTML = html;
       } else {
           newdiv.innerHTML = "nothing";
       }   
       document.getElementById("container").innerHTML = newdiv + document.getElementById("container").innerHTML;
    }

  16. #16
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Ma è normale! newdiv è un elemento dato che hai usato createElement.
    Se vuoi utilizzare innerHTML dovresti fare così:
    Codice:
    function creatediv(id, html, width, height, left, top) {
       var newdiv, attributes;
       
       attributes = "id=\"" + id + "\" style=\"";
    
       if (width) {
           attributes += "width: 300px;";
       }   
       if (height) {
           attributes += "height: 300px;";
       }   
       if ((left || top) || (left && top)) {
            attributes += "position: absolute;";
           
           if (left) {
               attributes += "left: " + left + "px;";
           }
           
           if (top) {
               attributes += "top: " + top + "px;";
           }
       }   
       attributes += "background: #00C;";
       attributes += "border: 4px solid #000;\"";
       if (html) {
           newdiv = "<div " + attributes + ">" + html + "</div>";
       } else {
           newdiv = "<div " + attributes + ">Nothing</div>";
       }   
       document.getElementById("container").innerHTML = newdiv + document.getElementById("container").innerHTML;
    }

  17. #17
    Guest

    Predefinito

    Grazie mille! proprio ciò di cui avevo bisogno!
    Ora però ho un altro problema: il div viene creato prfettamente, ma il form non viene più inviato.
    Grazie ancora a tutti per l'aiuto!

  18. #18
    Guest

    Predefinito

    Prova a dare un id al tag form (e.g. <form id="aaa" ...>) e come ultima istruzione della funzione metti:
    Codice:
    document.getElementById('aaa').submit() //ovviamente 'aaa' va sostituito con l'id del form

  19. #19
    Guest

    Predefinito

    grazie del suggerimento, avevo provato anche io qualcosa di simile, il problema è che quando compare il div, il form viene "svuotato", quindi viene inviato un form vuoto!

  20. #20
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Prova ad inserire il codice di gabryhacker all'inizio della funzione.

    Saluti!

  21. #21
    Guest

    Angry

    Niente da fare!!
    Il form non viene proprio inviato!
    Non so più dove sbattere la testa!
    Grazie a tutti!
    Ultima modifica di safefile : 02-11-2009 alle ore 20.36.41

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •