Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217

    Problema visualizzare form in overlay

    Ho trovato questo script che permette di caricare un form (pagina html esterna) direttamente in un overlay.
    Io sto lavorando ancora in ASP ma non capisco in base al file come fare in modo che una volta cliccato sul "submit" al di là di rielaborare i dati in ASP (nessun problema) il messaggio di risposta venga visualizzato nel medesimo overlay.
    Lo script originale è in PHP - http://dev.jonraasch.com/contact-pop/examples/
    Pagina ASP

    codice:
    <%
    formHtml = ""
    nome = "fabio"
    cognome = "lantier" 
    email ="fabiolantier@yahoo.it"
    azione = Request("azione")
    
    
    %>
    
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    
    
    <body>
        <div id="contactForm"><form action ="form.asp" method="post">
    <%IF azione = "ok" then
     %>
    <p id="contact-pop-error" class="formItem"><%Response.write "grazie"%></p>
    <%else %>
    
    
    <input type="hidden" name="azione" value="ok" />
     <input type="hidden" name="httpReferer" value="<%=Request.ServerVariables ("HTTP_REFERER")%>" />
            
            <div class="formItem">
                <label>Name:</label>
                <input type="text" name="name" class="inputText" value="<%=nome &" "& cognome%>" size="35" />
            </div>
            
            <div class="formItem">
                <label>Email:</label>
                <input type="text" name="email" class="inputText" value="<%=email%>" size="35" />
            </div>
            
            <div class="formItem">
                <label>Message:</label>
                <textarea name="message" class="textarea" rows="7" cols="38">$postedMessage</textarea>
            </div>
            
            <div class="formItem">
                <input type="submit" name="submit"  value="invia" class="submit" /> $cancelLink
            </div>
    
    
        <%end if %>
        </form>    </div>
    </body>
        </html>

    codice:
    /* ContactPop jQuery Plugin
     *
     * By Jon Raasch
     * http://jonraasch.com
     *
     * Copyright (c)2009 Jon Raasch. All rights reserved.
     * Released under FreeBSD License, see readme.txt
     * Do not remove the above copyright notice or text.
     *
     * For more information please visit: 
     * http://jonraasch.com/blog/contact-pop-jquery-plugin
    */
    
    
    
    
    ContactPop = {
        /************ config **************/
        
        // make sure to keep the trailing comma after each of these variable definitions
        
        replaceHref : '/form.asp', // can be array or string of hrefs or nothing if you want to use jQuery selectors (below)
        
        formPhpLocation : '/Contact-Pop/form.asp', // relative path to the backend contact form
        
        pathToContactPop : '/Contact-Pop', // relative path to the Contact-Pop directory
        
        contactHeadline : 'Contact Us',
        headerBgColor : '#777777', // background color of overlay panel header
        
        overlayFadeIn : 600, // overlay fade in speed (milliseconds)
        overlayFadeOut : 500, // overlay fade out speed (milliseconds)
        
        overlayEasing : '', // if you install the easing plugin (http://gsgd.co.uk/sandbox/jquery/easing/), the info goes here, example: 'easeInOutQuad'
        
        openButtonSelector : '', // set this to use jQuery selectors in addition to the hrefs - string (ex: '.contact, #contact-link')
        closeButtonSelector : '.close-overlay', // this works with any jQuery selector - string (ex: '#close-button, .close')
        
        resetFormEachTime : 0, // resets the form if the overlay is hidden and shown again
        
        fadeOverlayIE : 0, // default off - in IE 7/8 alpha transparency flashes black when ffaded
        fadeOverlayIE6 : 0, // default off - for performance
        
        
        
        /********** end config ************/
        
        obj : {},
        formFields : {},
        submitEvent : 0,
        overlayFade : 1,
        
        appendOverlay : function() {
            // append overlay and panel divs
            ContactPop.obj.overlay = jQuery('<div id="contact-pop-overlay"></div>').appendTo( jQuery('BODY') );
            
            ContactPop.obj.panelWrapper = jQuery('<div id="contact-pop-panel-wrapper"></div>').appendTo( ContactPop.obj.overlay );
            
            ContactPop.obj.panel = jQuery('<div id="contact-pop-panel"></div>').appendTo( ContactPop.obj.panelWrapper );
            
            // append panel headline
            ContactPop.obj.panelHeadline = $( '<h2 id="contact-pop-header">' + ContactPop.contactHeadline + '</h2>') . appendTo( ContactPop.obj.panel );
            
            // set panel headline background color
            if ( ContactPop.headerBgColor != '#777777' ) ContactPop.obj.panelHeadline.css( 'backgroundColor', ContactPop.headerBgColor );
            
            // append panel header close button
            ContactPop.obj.panelHeadline.append( '<a href="#" class="close-overlay">X</a></h2>' );
            
            // append form
            ContactPop.obj.form = jQuery('<form action="' + ContactPop.formPhpLocation + '" method="get" id="contact-pop-form"></div>').appendTo( ContactPop.obj.panel );
            
            // append loading graphic
            ContactPop.obj.loading = jQuery('<div id="contact-pop-loading-gif-wrapper"></div>').appendTo( ContactPop.obj.panel );
            
            ContactPop.obj.loading.append('<img src="' + ContactPop.pathToContactPop + '/contact-pop/img/ajax-loader.gif" alt="" id="contact-pop-loading-gif" />');
        },
    
    
        getFormContent : function() {
            // grab form html using jQuery's AJAX API
            jQuery.get( ContactPop.formPhpLocation, { 'ajaxForm' : 1 },  function(html) {                
                if ( html ) {
                    ContactPop.obj.loading.fadeOut(200);
                    ContactPop.obj.form.html( html );
                    ContactPop.attachFormEvents();
                }
            });
        },
        
        attachFormEvents : function() {
            // close buttons
            jQuery( ContactPop.closeButtonSelector, ContactPop.obj.panel).click( function(ev) {
                ev.preventDefault();
                ContactPop.hideOverlay();
            });
            
            // attach submit event each time for IE
            if ( jQuery.browser.msie ) {
                jQuery('input.submit', ContactPop.obj.form).click( function(ev) {
                    ev.preventDefault();                
                    ContactPop.submitForm();
                });
            }
            // only attach submit event once for other browsers
            else if ( !ContactPop.submitEvent ) {            
                ContactPop.obj.form.submit( function(ev) {
                    ev.preventDefault();                
                    ContactPop.submitForm();
                });
                
                ContactPop.submitEvent = 1;
            }
        },
        
        checkOverlayFade : function() {
            if ( $.browser.msie && !ContactPop.fadeOverlayIE && !( $.browser.version < 7 && ContactPop.fadeOverlayIE6 ) ) return false;
            else return true;
        },
        
        showOverlay : function() {
            // if first time append the overlay and get the form content
            if ( typeof(ContactPop.obj.overlay) == 'undefined' ) {         
                ContactPop.appendOverlay();
                ContactPop.getFormContent();
            }
            else if ( ContactPop.resetFormEachTime ) ContactPop.getFormContent();
            
            if ( ContactPop.overlayFade ) ContactPop.obj.overlay.fadeIn( ContactPop.overlayFadeOut, ContactPop.overlayEasing );
            else ContactPop.obj.overlay.show();
        },
        
        hideOverlay : function() {
            if ( ContactPop.overlayFade ) ContactPop.obj.overlay.fadeOut( ContactPop.overlayFadeIn, ContactPop.overlayEasing );
            else ContactPop.obj.overlay.hide();
        },
        
        submitForm : function() {
            // add form fields to array
             jQuery('input, select, textarea', ContactPop.obj.form).each( function() {
                ContactPop.addFormField( jQuery(this) );
             });
             
             // set the ajaxForm post value
             ContactPop.formFields['ajaxForm'] = 1;
             
             // fade in the loading graphic
             ContactPop.obj.form.fadeOut(200);
             ContactPop.obj.loading.fadeIn(200);
             
             // post the form with jQuery's AJAX API
            jQuery.post( ContactPop.formPhpLocation, ContactPop.formFields, function(html) {                
                if ( html ) {
                    ContactPop.obj.form.html( html );
                    ContactPop.obj.loading.fadeOut(200);
                    ContactPop.obj.form.fadeIn(200);      
                    ContactPop.attachFormEvents();
                }
              });
        },
        
        addFormField : function( $field ) {
            var fieldName = $field.attr('name');
            if ( fieldName ) ContactPop.formFields[ fieldName ] = $field.val();
        },
        
        init : function() {
            var anchorSelector = '';
            // force array
            if ( typeof( ContactPop.replaceHref ) != 'object' ) ContactPop.replaceHref = [ ContactPop.replaceHref ];
            
            // add anchor selectors
            for ( var i = 0; i < ContactPop.replaceHref.length; i++ ) {
                if ( ContactPop.replaceHref[i] ) anchorSelector += 'a[href=' + ContactPop.replaceHref[i] + '], ';
            }
            
            // add  additional jQuery selectors
            if ( ContactPop.openButtonSelector ) anchorSelector += ContactPop.openButtonSelector;
            else anchorSelector = anchorSelector.substr(0, anchorSelector.length - 2);
    
    
            // define ctas and click event
            ContactPop.obj.ctas = jQuery(anchorSelector);
            
            ContactPop.obj.ctas.click( function(ev) {
                ev.preventDefault();
                ContactPop.showOverlay();
            });
            
            // determine if fading overlay or just hide/showing
            ContactPop.overlayFade = ContactPop.checkOverlayFade();
            
            // preload overlay image - keep this in the init() function so the rest of the page loads first
            
            var overlayImg = new Image();
            if ( jQuery.browser.msie && jQuery.browser.version < 7 ) overlayImg.src = ContactPop.pathToContactPop + '/img/overlay-ie6.png';
            
            else overlayImg.src = ContactPop.pathToContactPop + '/img/overlay.png';
        }
    };
    
    
    jQuery(function() {
        // initiate ContactPop once the page loads
        ContactPop.init();
    });
    Ultima modifica di fabiodj; 27-12-2016 a 00:49

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217
    Problema risolto adesso però vorrei cambiare i seguenti parametri nel file js sopra menzionato in quanto vorrei che la pagina inserita come overlay prelevei dei dati in base al ID.
    Pertanto nella pagina html mi sono creato la funzione:

    codice:
      $(document).ready(function () {
          $('.testo').click(function () {
              var recupero_id = $(this).attr("id");
     });
     });
    a questo punto vado a sostituire il parametro ma non funziona ....

    codice:
       replaceHref :'/form.asp?urlid='+recupero_id+ ,
       formPhpLocation :'/Contact-Pop/form.asp?urlid='+recupero_id+ ,
    
    





  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    La variabile deve essere globale togli il var davanti
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217
    Andrea

    Ho fatto come mi hai consigliato ma nulla il risultato non cambia ... non carica l'overlay.
    lA PAGINA è VISIBILE su www.groupedelite.com/contact-pop/
    In poche parole nella pagina HTML ho inserito i link in questo modo:

    codice:
     qui ci sta il link a jquery e a contact-pop.js
    
    
    <p>
    <a href="/form.asp" id="1" class="testo">Click me to see Contact-Pop in action</a>
    </p>
        <p>
            <a href="/form.asp" id="2" class="testo">Click me to see Contact-Pop2in action</a>
        </p>
    Il flle contact-pop.js presenta il codice cosi come nel primo post; l'unica modifica apportata è la seguente per recuperare l'ID

    <script>
    $(document).ready(function () {


    //quando clicco sul testo (trigger)
    $('.testo').click(function () {


    //imposto una variabile e ci associo l'attributo id del trigger
    //che ho cliccato (in questo caso .testo)


    recupero_id = $(this).attr("id");


    //da qui in poi potete usare l'id recuperato per fare qualcosa
    //in questo caso faccio apparire un alert con dentro l'id recuperato.


    }); //fine click function


    }); //fine DOM

    </script>


    codice:
       replaceHref :'/form.asp?urlid='+recupero_id+,
       formPhpLocation :'/Contact-Pop/form.asp?urlid='+recupero_id+
    Ultima modifica di fabiodj; 27-12-2016 a 20:31

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Esegui il processo ajax monitorandolo con Firebags
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217
    Andrea

    L'errore è qui nella dichiarazioni delle querystring... praticamente non accetta la virgola ma, io sono costretto a metterla perché ogni valore della funzione che vedi proprio nel primo posto è separato dalla virgola. Come posso ovviare mi aiuti ?



    replaceHref :'/form.asp?urlid='+recupero_id+ , // can be array or string of hrefs or nothing if you want to use jQuery selectors (below)

    formPhpLocation: '/Contact-Pop/form.asp?urlid='+recupero_id+ , // relative path to the backend contact form

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Sostituisci la virgola col punto o con il trattino _ con un replace
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.