Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    97

    aprire una popup con un link, passando i dati alcuni campi

    ciao ragazzi
    devo realizzare una pagina dove l'utente inserisce i dati in un form. Con un link però devo anche poter inviare tali dati ad una popup (non facendo il submit del forum)..mi serve un link che mi apre una popup anche con il seguente url

    pagina.asp?nome=xx&cognome=xxx

    ovviamente questi dati sono presi dai campi compilati, in realtime..

  2. #2
    Ciao il tuo problema mi ha incuriosito e allora ti propongo questa soluzione che preserva un minimo di accessibilità alle tue pagine

    partiamo con l'html :

    codice:
    <html>
    <head>
    <script type="text/javascript" src="file_javascript_esterno.js"></script>
    </head>
    <script type="text/javascript">
    var regola='<style type="text/css">#submit {display:none} <\/style>'
    document.write(regola);
    </script>
    
    <body>
    
    <form action="pagina.asp" method="get" id="mioform" onsubmit="return false">
    
    Nome <input type="text" name="nome">
    
    Cognome <input type="text"name="cognome">
    
    <input type="submit" value="invia" id="submit">
    
    
    
    </form>
    
    <script type="text/javascript">
    var link=document.createElement("a");
    var text=document.createTextNode("prova");
    link.setAttribute('href','javascript:make_window("mioform");');
    link.appendChild(text);
    var form=document.getElementById("mioform");
    form.appendChild(link);
    </script>
    
    <div id="risultato"></div>
    
    </body>
    
    </html>
    Dunque abbiamo un form con due campi di testo e un pulsate submit. Chi ha javascript disabilitato vedrà questo e non sarà in alcun modo condizionato in quanto compilando il form la pagina viene restituita col classico modo tramite l'action del form.

    Altrimenti tramite la regola css scritta con document.write prendiamo il tasto submit che ha id "submit" e gli mettiamo un bel display:none che,combinato con onsubmit="return false" del form,impedisce di fatto l'invio del modulo.

    Inoltre subito dopo aver chiuso </form> (e quindi è un oggetto del Dom che puo essere istanziato) ci creiamo l'elemento link il cui href lo facciamo puntare tramite protocollo javascript alla funzione make_window() - che è inclusa nel file esterno - passandole come parametro l'id del form.

    vediamo ora il javascript esterno:

    codice:
    var current_url="";
    var new_window=null;
    
    function make_window(id_form) {
    
    var new_url=make_url(document.getElementById(id_form));
    
    if (!new_window || new_window.closed) new_window=window.open(new_url,"","");
    
    else (new_url==current_url)?new_window.focus():new_window.location.href=new_url;
    
    current_url=new_url;
    
    }
    
    
    function make_url(form) {
    
    var url="pagina.asp?";
    var nome_valore=""; 
    var contatore=0;
    var campi_testo= new Array();
    
    for (var a=0;a<form.elements.length;a++) {
     
      if (form.elements[a].type=="text") { 
       campi_testo[contatore]=form.elements[a];
       contatore++;
       }	
     }
    
    for (var i=0;i<campi_testo.length;i++) {      
          nome_valore=campi_testo[i].name + "=" + escape(campi_testo[i].value);
          (i!=campi_testo.length-1)?url+=nome_valore+"&":url+=nome_valore; 
    
      }
    
    return url;
    
    }
    Abbiamo due funzioni:

    la prima,make_url(form), prende come parametro l'oggetto form e si costruisce prima l'array dei campi di testo presenti (è una operazione ausiliaria che semplifica l'operazione dopo) e poi costruisce l'url con il classico concatenamento di stringhe (la funzione escape serve a codificare i caratteri non permessi in un url eventualmente inseriti nei campi di input) e infine ritorna questo url.

    La funzione make_window si serve di due variabili globali per tenere traccia dello stato della finestra secondaria e prevede alla sua apertira e/o al suo aggiornamento. Necessita come detto di un parametro che è l'id del form che poi sarà usato per parametrizzare la make_url.

    Ho fatto tutto questo ambaradan iniziando alle 3 di notte dopo essere tornato da una festa e devo ammettere che è stato divertente...sennonchè quando ho finito mi sono accorto che fuori stava albeggiando da un pezzo! VVoVe:

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    97
    o mio dio ehehehe non volevo certo tenerti tutta la notte a realizzare questo script eheheh grande lo implemento subito e ti farò sapere...a buon rendere

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 © 2024 vBulletin Solutions, Inc. All rights reserved.