Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Form all'onsubmit che apre popup.

    Dunque il mio problema è il seguente.
    Ho un form di inserimento dati:
    codice:
    <script language='Javascript'>
    function popMessaggio() {
    	window.open("iscrizione.asp", "PopUp", "width=280,height=250,scrollbars=no");
    }
    </script>
    <form name="form_mailing" method="post" action="javascript:popMessaggio();" onSubmit="return controlloemail(this)">
      <table width="86" border="0" cellspacing="2" cellpadding="0" align="center">
        <tr> 
          <td> 
            <input type="text" name="email" maxlength="25" size="17">
          </td>
        </tr>
        <tr> 
          <td align="left" class="text"> 
            <input type="radio" name="action" value="iscriviti" id="add" checked>Iscriviti
    
            <input type="radio" name="action" value="cancellati" id="delete">Cancellati</td>
        </tr>
        <tr>
          <td align="center">
            <input type="submit" name="submit" value="Conferma">
          </td>
        </tr>
      </table>
    </form>
    Come potete vedere uso la seguente:
    codice:
    <form name="form_mailing" method="post" action="javascript:popMessaggio();" onSubmit="return controlloemail(this)">
    proprio per ottenere l'apertura della action in un popup. La funzione JS è:
    codice:
    <script language='Javascript'>
    function popMessaggio() {
    	window.open("iscrizione.asp", "PopUp", "width=280,height=250,scrollbars=no");
    }
    </script>
    Il problema qual è che la pagina di popup si apre, ma non mi stampa a video la variabile ASP recuperata tramite request.form come invece dovrebbe.
    Questa è la popup:
    codice:
    <% 
    response.buffer=true
    
    'Dichiaro le variabili
    
    Dim indirizzo_email				'email inserita nel form
    Dim azione						'scelta se iscriversi o cancellarsi nel form
    Dim rs_nuovo_membro				'iscrizione nuovo membro
    Dim messaggio_errore			'creo un messaggio di errore in caso di email già presente
    Dim rs_rimuovi_membro			'cancellazione utente dalla mailing
    
    
    
    indirizzo_email = lcase(trim(Request.Form("email")))	'prendo l'email e trasformo i caratteri in minuscolo
    response.write(indirizzo_email)
    azione = Request.Form("action")							'prendo l'azione dell'utente
    
    
    
    'apro la connessione al database
    
    %>
    
    
    
    <%
    Select Case azione				'analizzo le diverse azioni che vuole fare l'ultente
    
    Case "iscriviti"				'se l'utente si iscrive
    		
    		strSQL = "SELECT Email FROM mailing_list where Email = '" & indirizzo_email & "'"
    		
    		objConn.execute(strSQL)
    		
    		Set rs_nuovo_membro = Server.CreateObject("ADODB.Recordset")
    		rs_nuovo_membro.Open strSQL, objConn		
    
    		if not rs_nuovo_membro.eof then
     		   response.write("L'Email è già presente in archivio")
    		else
    		   'Aggiungo un nuovo record
    		   sql = "INSERT INTO mailing_list(Email) VALUES('" & indirizzo_email & "')"			
    		   objConn.execute(sql)	
    		   response.write("L'Email è stata inserita correttamente nel nostro archivio")	
    		   Messaggio = 2
    		End If
    		
    		'**** Invio Email *********
          Set objMail = CreateObject("CDO.Message")
          objMail.From="info@tuttoelezioni.it" 
          objMail.To=indirizzo_email
          objMail.Subject="Iscrizione Neswletter" 
          objMail.HTMLBody="<html><body bgcolor=#FFFFFF><font face=verdana size=4 color=#000000><center>
    Grazie per esserti iscritto alla newsletter di Tuttoelezioni.it</font></body></html>"
          
    			objMail.Send() 
          Set objMail = nothing
    			'*****************************
    
    		
    
    		'Reset recordset
    		rs_nuovo_membro.Close
    		Set rs_nuovo_membro = Nothing
    
    
    Case "cancellati"				'se l'utente si cancella
    
    		strSQL = "SELECT Id, Email FROM mailing_list where Email = '" & indirizzo_email & "'"
    		objConn.execute(strSQL)
    
    		Set rs_rimuovi_membro = Server.CreateObject("ADODB.Recordset")
    		rs_rimuovi_membro.Open strSQL, objConn		
    
    		if not rs_rimuovi_membro.EOF Then
    			sqlCancella = "delete from mailing_list where Id = " & rs_rimuovi_membro("Id")
    			objConn.execute(sqlCancella) 
    			response.write("L'Email è stata correttamente cancellata")
    			Messaggio = 3
    		else
    			response.write("L'Email digitata non risulta presente in archivio")	
    			Messaggio = 4
    		end if
    		
    		'**** Invio Email *********
          Set objMail = CreateObject("CDO.Message")
          objMail.From="info@tuttoelezioni.it" 
          objMail.To=indirizzo_email
          objMail.Subject="Rimozione Email" 
          objMail.HTMLBody="<html><body bgcolor=#FFFFFF><font face=verdana size=4 color=#000000><center>
    La sua email è stata cancellata dall'archivio di Tuttoelezioni.it</font></body></html>"
          
    			objMail.Send() 
    		    Set objMail = nothing
    			'*****************************
    
    		rs_rimuovi_membro.Close
    		Set rs_rimuovi_membro = Nothing
    		
    End Select
    
    objConn.close
    set objConn = nothing
    
    %>
    LA riga in grassetto al submit del form e dell'apertura della popup non viene stampata a video di conseguenza anche le altre operazioni di scrittura sul DB non vengono eseguite.

    Ho postato qui, perchè penso che il problema sia principalmente di JS, spero sia la sezione giusta.

    Grazie per l'aiuto.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  2. #2
    Ok, ho risolto l'apertura del popup in questa maniera:
    codice:
    <form name="form_mailing" method="post" action="iscrizione.asp" onSubmit="return controlloemail(this); window.open('', 'PopUp', 'width=280,height=250,scrollbars=no');" target="PopUp">
    Solo che l'apertura non mi mantiene le dimensioni che io setto, come mai??? :master:
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non ho guardato tutto lo script, ma mi pare che il JS dentro l'evento sia da modificare:

    onSubmit="if (controlloemail(this)) {window.open('', 'PopUp', 'width=280,height=250,scrollbars=no'); return true;} else return false;"

    Con il tuo metodo non usava mai la window.open: semplicemente apriva una nuova finestra perche` il target non trovava la finestra con quel nome.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    Grazie Michele, gentilissimo.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

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.