Visualizzazione dei risultati da 1 a 10 su 10

Discussione: form ordini

  1. #1

    form ordini

    ciao a tutti,

    sto facendo un form nel quale il cliente seleziona delle voci tramite il tag select, il quale popola, in base alle selezioni, un campo del form.
    Il form e provvisto di checkbox per offrire maggiori personalizzazioni.
    Ora il mio problema è che non riesco a creare uno script che prenda queste funzioni selezionate le stampi a video e le invii con il fom all'indirizzo email specificato.

    Acetto, ovviamente, ogni dritta
    grazie
    sandro1492

  2. #2

    Re: form ordini

    ... e le invii con il fom all'indirizzo email specificato. :master: :master:
    javascript non permette di inviare email, per far ciò, devi utilizzare un linguaggio server-side tipo php/asp/jsp...
    oppure vuoi fare una cosa del tipo:
    l'utente compila il form e poi quando preme un pulsante si apre una finestra del programma di posta con già settato l'indirizzo segnalato e la mail la invia l'utente?
    innanzitutto devi definire questo e poi di conseguenza si procede.
    p.s.: per stampa a video intendi stampare un riepilogo dei dati inseriti?

    «Non esiste mondo fuor dalle mura di Verona; ma solo purgatorio, tortura, inferno. Chi è bandito di qui, è bandito dal mondo e l'esilio dal mondo è morte...»
    - William Shakespeare -

  3. #3

    form e stampa dati

    ciao dvjack e grazie per la disponibilità.


    si hai centrato i miei due problemi.
    Si dovrei stampare a video, nella stessa pagina del form, il riepilogo dei valori scelti dall'utente;
    per poi farmeli spedire via mail all'indirizzo indicato in automatico nel suo client di posta.
    Il mio principale problema è la scelta della funzione da utilizzare o se esiste uno script o una libreria per farlo.

    grazie ancora
    sandro1492

  4. #4
    Considerando che non hai a disposizione un linguaggio server-side, potresti fare una cosa del genere:
    codice:
    // Esempio semplificato della pagina pagina HTML
    <form action="mailto:tuamail@tuodominio.com?subject=Oggetto della mail" method="post" enctype="text/plain">
    Nome:<input type="text" name="Nome" />
    Email:<input type="text" name="Email" />
    <button type="submit" id="bottone">Invia</button>
    </form>
    <div style="display:none" id="riepilogo">
       
    
    Nome: <span id="riepilogo_nome"></span></p>
       
    
    Email: <span id="riepilogo_email"></span></p>
    </div>
    e quindi la funzione javascript:
    codice:
    window.onload = function(){ document.getElementById('bottone').onclick = function(){ return riepilogoEinvia(this.parentNode);}}
    function riepilogoEinvia(f){
    	document.getElementById('riepilogo_nome').innerHTML=f.Nome.value;
    	document.getElementById('riepilogo_email').innerHTML=f.Email.value;
    	f.style.display='none';
    	document.getElementById('riepilogo').style.display="block";
    	setTimeout('document.getElementById("bottone").parentNode.submit()',3000);/* ho messo un ritardo di 3 secondi, per dare la possibilità di vedere il riepilogo, se non lo vuoi, oltre a cancellare questa riga, devi mettere true nella prossima (return true;) */
    	return false;
    	}
    Questa è una possibile soluzione, poi volendo puoi prenderne spunto e invece di inviare i dati via post al client di posta, potresti crearti in una stringa il testo da mettere nella mail e aggiungerlo in querystring con il nome body e inviare i dati via get.
    Naturalmente, questo è un esempio semplificato, devi aggiungere i tuoi campi.
    «Non esiste mondo fuor dalle mura di Verona; ma solo purgatorio, tortura, inferno. Chi è bandito di qui, è bandito dal mondo e l'esilio dal mondo è morte...»
    - William Shakespeare -

  5. #5

    form ordini

    ciao dvjack, grazie molte per la tua preziosa collaborazione...

    ho lavorato al tuo suggerimento e letto quello che mi hai scritto ed avrei due domande.
    La prima è che non mi viualizza il riepilogo nella finestra del form neanche se imposto il setTimeout a 10 secondi, mentre i dati che immette nel corpo della mail vanno bene.

    La seconda è che cosa otterrei creando in una stringa il testo da mettere nella mail ed inviarlo via get (come mi suggerisci) e se tale consiglio è per maggiore sicurezza.

    grazie
    sandro1492

  6. #6
    procedendo con ordine:
    1) il timeout è per lanciare il client di posta, quindi non è direttamente collegato al fatto di mostrare il riepilogo. Su che browser hai provato? se sei su IE, ti mostra un messaggio d'errore del tipo errore nella riga x dello script, o se hai Firefox e Firebug installato ti dà qualche errore?
    2) personalmente opterei per una soluzione server-side, ma visto che nel tuo caso non è possibile, allora rimarrei sull'invio dati tramite post,. La soluzione tramite GET è una possibilità che ti ho proposto nel caso non fosse di tuo gradimento il fatto che nel corpo della mail scrivesse il nome della variabile = testo dell'input. Per sicurezza non saprei cosa intendi, ma tutto l'ambaradam viene fatto sul pc dell'utente e nn penso ci siano problemi di sicurezza particolari...
    Cmq io opterei per il metodo post, poi vedi tu, a mio avviso può crea meno errori che il get, perchè passare stringhe in querystring non è mail il massimo...

    per il primo punto, dimmi tu, perchè da me funziona tranquillamente...
    «Non esiste mondo fuor dalle mura di Verona; ma solo purgatorio, tortura, inferno. Chi è bandito di qui, è bandito dal mondo e l'esilio dal mondo è morte...»
    - William Shakespeare -

  7. #7

    form ordini

    ciao dvjack..

    a, quindi il setTimeout è riferito al ritardo dell'apertura del client ...allora funziona perfettamente! io mi riferivo ad un riepilogo nella stessa pagina del form compilatoe poi con il tasto invia il riepilogo compare nel corpo della mail.
    Per essere più chiaro: una volta compilato il form, l'utente clicca sul tasto avanti, il quale attiva lo script che gli fa vedere il riepilogo e poi se è soddisfatto procede con l'invio tramite client.

    il mio problema è che non trovo una funzione adatta per passare i valori delle checkbox e/o dei select dalla pagina del form alla successiva pagina del riepilogo.

    grazie mille,
    sandro1492

  8. #8
    avevo inteso male io allora...ho fatto un paio di modifiche, ecco la nuov aparte js:
    codice:
    window.onload = function(){
    		document.getElementById('bottone_riepilogo').onclick = function(){ return riepilogo(this.parentNode);}
    		document.getElementById('indietro').onclick = function(){ return hideShow(true);}
    		document.getElementById('avanti').onclick = function(){ return invia();}
    		}
    function riepilogo(f){
    	document.getElementById('riepilogo_nome').innerHTML=f.Nome.value;
    	document.getElementById('riepilogo_email').innerHTML=f.Email.value;
    	ch_str='';
    	ch_str=(f.chb1.checked)?f.chb1.value+' ':'';
    	document.getElementById('riepilogo_checkbox').innerHTML=ch_str;
    	hideShow(false);
    	return false;}
    	
    function invia(f){document.getElementById('form_invio').submit(); return false;}
    function hideShow(b){
    	document.getElementById('form_invio').style.display=(b)?'block':'none';
    	document.getElementById('riepilogo').style.display=(!b)?'block':'none';
    	return false;}
    e la parte html:
    codice:
    <form action="mailto:tuamail@tuodominio.com?subject=Oggetto della mail" method="post" enctype="text/plain" id="form_invio">
    Nome:<input type="text" name="Nome" />
    
    Email:<input type="text" name="Email" />
    
    ChechBox: 
     
    <input type="checkbox" value="ValoreCheckbox1" name="chb1" /> Valore Checkbox 1
    
    <button type="submit" id="bottone_riepilogo">Invia</button>
    </form>
    <div style="display:none" id="riepilogo">
       
    
    Nome: <span id="riepilogo_nome"></span></p>
       
    
    Email: <span id="riepilogo_email"></span></p>
       
    
    Chechbox: <span id="riepilogo_checkbox"></span>
    
    
       <button type="button" id="indietro">Indietro</button> <button type="button" id="avanti">Invia</button>
    </div>
    come prima è solo una cosa generica che poi devi personalizzare con i tuoi campi...
    «Non esiste mondo fuor dalle mura di Verona; ma solo purgatorio, tortura, inferno. Chi è bandito di qui, è bandito dal mondo e l'esilio dal mondo è morte...»
    - William Shakespeare -

  9. #9

    form ordini

    Ciao dvjack grazie mille per il prezioso aiuto...

    mi sono messo al lavoro..e avrei una domanda per chiarirmi le idee; se volessi non far vedere il riepilogo di un campo che non è stato selezionato posso nasconderlo utilizzando la funzione
    document.getElementById('riepilogo').style.display ="none";


    grazie mille
    sandro1492

  10. #10
    Hai sbagliato a cliccare....hai fatto Nuovo messaggio al posto di Rispondi!!!!
    cmq tornando al problema, se non vuoi mostrare un singolo campo, ti basta non andarlo a settare nel riepilogo, cioè nella funzione riepilogo (visto che prende i dati dal form e li inserisce nel div del riepilogo). L'istruzione che hai scritto tu è per nascondere il form, quindi nascondendo quello nascondi tutti i campi...

    [edit]
    grazie al mod che ha unito i due 3d...
    «Non esiste mondo fuor dalle mura di Verona; ma solo purgatorio, tortura, inferno. Chi è bandito di qui, è bandito dal mondo e l'esilio dal mondo è morte...»
    - William Shakespeare -

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.