Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Invio Form con Jscript

  1. #1

    Invio Form con Jscript

    Ho una pagina con due form.
    Nel primo form c'è un menù a discesa; in base alla selezione mi ricarica la pagina, mettendo in un altro menù a discesa di un secondo form le opzioni corrispondenti alla prima scelta.
    E' tutto in ASP, a parte la funzione jscript jumppage richiamata al click su una selezione del primo menù:
    codice:
    function jumpPage(newLoc) { 			
    newPage = newLoc.options[newLoc.selectedIndex].value 	 
    if (newPage != "") { 				
    	window.location = newPage 			
    	} 		
    }
    Il problema è che questa funzione ricarica la pagina, non manda un form. Così facendo, perdo tutti i dati che avevo inserito nei campi del secondo form.

    Qualcuno ha qualche consiglio?

    Ciao e grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Dovresti comunque inviare il form, e nel ricaricare la pagina scrivere dentro i campi i valori gia` presenti.

    In pratica devi fare il tutto lato server (ASP).

    Dovresti quindi togliere la funzione JS, e inviare il form invece di chiamare la funzione:

    <select ... onchange="this.form.submit();">

    Poi il programma ASP cui viene inviato il form deve capire che il form non e` completo e rispedire una pagina precompilata con i dati gia` inseriti.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao a tutti,

    i campi del form compilati ma non salvati vengono inevitabilmente persi se si ricarica la pagina... per popolare la seconda select potresti sfruttare un frame (anche nascosto) o un popup (anche in un'area del monitor non visibile). All'onchange della prima select richiami una pagina nel frame o nel popup che genera codice js per popolare la seconda select. Magari se posti il codice che popola la seconda select ti faccio un esempio.

  4. #4
    Originariamente inviato da willybit
    Ciao a tutti,

    i campi del form compilati ma non salvati vengono inevitabilmente persi se si ricarica la pagina... per popolare la seconda select potresti sfruttare un frame (anche nascosto) o un popup (anche in un'area del monitor non visibile). All'onchange della prima select richiami una pagina nel frame o nel popup che genera codice js per popolare la seconda select. Magari se posti il codice che popola la seconda select ti faccio un esempio.
    Ecco il codice (più pulito possibile). Ci sono entrambi i form (il primo si chiama 'primo' e il secondo..ehm..'secondo')
    codice:
    <%
    opt=Request("opt")
    surname=Request("surname")
    nome=Request("nome")
    tel=Request("telcasa")
    mob=Request("mob")
    mail=Request("mail")
    quest=Request("quest")
    prior=Request("prior")
    s=Request("s")
    %>
    
    <form name="primo" action="Prendi_richiesta.asp">			  
    	<select size="1" name="oggetto" onchange="jumpPage(this)">
                			  <option selected>-Scegli l' oggetto-</option>
    	<%
    	sqlogg="SELECT * FROM MAILOBJS_OGG"
    	Set Rsogg=conn.execute(sqlogg)
    
    	Do until Rsogg.EOF
    	opt_=Rsogg("oggetto")+"_"
    	%>
    							<option value="Prendi_richiesta.asp?opt=<%=opt_%>&surname=<%=surname%>&nome=<%=nome%>&mail=<%=mail%>&quest=<%=quest%>&telcasa=<%=telcasa%>&mob=<%=mob%>&prior=<%=prior%>"
    	<%
    	if opt_=opt then
    	Response.Write "selected"
    	end if
    	%>
    	><%=Rsogg("oggetto")%>	</option>
    	<%
    	Rsogg.Movenext
    	loop 
    	Rsogg.Close
    	Set Rsogg=nothing
    	%>
        </select> 
    </form>			
    
    
    				
    <form name="secondo" action="Salva_prendi_richiesta.asp" method="post" onSubmit="return validprendi(this)">
    	<select size="1" name="specifica">
    			<option selected>-Scegli un problema-</option>
    		<%
    		sqlspec="SELECT * FROM MAILOBJS_SPEC WHERE oggetto = '"&opt&"'"
    		Set Rsspec=conn.execute(sqlspec)
    
    		Do until Rsspec.EOF
    		%>
    			<option value="<%=Rsspec("specifica")%>"><%=Rsspec("specifica")%></option>
    		<%
    		Rsspec.Movenext
    		loop
    		Rsspec.Close
    		Set Rsspec=nothing
    		if prior="true" then
    		ch="checked"
    		end if
    		%>
        </select>			
    				<td class="int">Priorità:</td>
                 	<td width="40%"><input type="checkbox" name="priorità" value="true" <%=ch%>>Segna come urgente</td>
                  	<td class="int">Cognome: </td>
                  	<td><input type="text" name="surname" size="19" maxlength="22" value="<%=surname%>"> 
                  	<td class="int" width="10%">Nome: </td>
                  	<td><input type="text" name="nome" size="19" maxlength="22" value="<%=nome%>"> </td>
                    <td class="int">Tel.casa: </td>
                    <td><input type="text" name="telcasa" size="19" maxlength="22" value="<%=telcasa%>"> 
                    <td class="int">Cell: </td>
                    <td><input type="text" name="mob" size="19" maxlength="22" value="<%=mob%>"> </td>
                    <td class="int" colspan="3">Messaggio:</td>
                    <td class="int">E-mail: </td>
                    <td><input type="text" name="mail" size="19" maxlength="22" value="<%=mail%>"> </td>
    				<textarea name="quest" rows="10" cols="85"><%=quest%></textarea> </td>
    				<input type="reset" value="Cancella i dati inseriti"> 
                     <input type="submit" value="Inserisci la richiesta"> </td>
    				<input type="hidden" name="oggetto" value="<%=opt%>">
    </form>
    Grazie!

  5. #5
    Originariamente inviato da Mich_
    Dovresti comunque inviare il form, e nel ricaricare la pagina scrivere dentro i campi i valori gia` presenti.

    In pratica devi fare il tutto lato server (ASP).

    Dovresti quindi togliere la funzione JS, e inviare il form invece di chiamare la funzione:

    <select ... onchange="this.form.submit();">

    Poi il programma ASP cui viene inviato il form deve capire che il form non e` completo e rispedire una pagina precompilata con i dati gia` inseriti.
    il problema è che i campi sono in un altro form.
    se anche mando il primo form, mi manda i valori dei campi del primo form, non quelli del secondo (che così vengono persi).
    Oppure ho capito male cosa intendi?

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Invece che portarti a spasso i valori fra il server ed il browser potresti memorizzarli sul server in opportune variabili di sessione.... ma questo e' argomento ASP

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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