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

    [php-js] dopo invio da form doppia apertura...

    Ciao a tutti,

    qualcuno può aiutarmi?! ho questo problema...


    ho una form di richiesta informazioni dentro una pagina di un sito... appena si preme invio la form spedisce due mail (fino a qua tutto ok).
    Quello che mi serve è che succeda questo:

    appena l'utente preme invio nella form si deve aprire un popup che dice "richiesta inviata con successo" se la mail è partita oppure stampi messaggio di errore.
    La pagina con la form invece deve ricariscarsi "vergine".

    Ora, i messaggi di errore, l'invio mail ecc. funzionano... quello che non so fare è gestire il doppio evento (apertura del popup e contemporaneamente refresh della pagina con la form)... forse è più una richiesta relativa a js che a php ma non so! ditemi voi


    grazie,

    r@p

  2. #2
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754
    suppongo che utilizzi la funzione mail(), quindi fatti restituire il booleano:

    $control = mail(.....);

    Codice PHP:
    if($control){
      echo 
    '<script>window.open('tuapagina.php','','parametri')</script>' 
    }else{
      echo 
    '<script>window.open('errore.php','','parametri')</script>' 

    mentre nei due popup(volendo si puo' utilizzare una pagina sola x il popup)devi infilare un js del genere:


    codice:
    window.opener.location.reload();
    ovviamente inglobato nei tag <script></script>
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

  3. #3
    uhm... ti ringrazio per l'aiuto ma non credo d'aver ben capito :/


    lasciamo stare per un attimo il discorso mail che non mi crea problemi... ipotiziamo semplicemente che io abbia la form, prema invio, se ho premuto invio mi deve fare il refresh e stampare un messaggio a parte in un popup

    faccio così:

    codice:
    <?php
    
    	if ($_POST['invia']) {
    		 echo "<script>window.open('include/form_ok.tpl.php,'pippo','width=400,height=200')</script>";
    	}
    
    	eval("\$contents .= \"".GetTemplate("templates/dynamic_contents/form.tpl.php")."\";");
    
    ?>
    dove l'eval mi carica la form...

    così mi fa ovviamente il refresh della form ma non mi apre il popup :/

    inoltre non ho capito questo:

    codice:
    window.opener.location.reload();
    grazie ancora!!!


    P.S.

    evidentemente è una discussione riguardante soprattutto js... mi scuso con gli utenti!

  4. #4
    ahhh altra cosa... nella popup mi servono alcuni dati della form... l'unico modo è appenderli in get nel

    echo "<script>window.open('include/form_ok.tpl.php,'pippo','width=400,height=200')</script>";

    tipo

    'include/form_ok.tpl.php?nome={$_POST['nome']}


    ????


    non c'è nulla di meglio?!


    r@p

  5. #5
    uppete...


    nessuno sa darmi qualche dritta?!


    thx, r@p

  6. #6
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754

    inoltre non ho capito questo:

    codice:
    window.opener.location.reload();
    questo se messo in un popup ricarica la pagina che ha aperto tale popup.

    non ho capito bene il tuo problema allora :master:
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

  7. #7
    uhm... dunque, facciamo prima così:


    se vai su www.faradonline.com/index.php?page=domande (è solo una bozza) ci trovi una form... appena premo "invia i dati" deve succedere questo:

    - i dati vengono inviati a una pagina php che si preoccupa di spedire una mail e deve aprire un popup con scritto "Gent.le Matio Bianchi, la sua richiesta è stata inviata"
    - la pagina che vedi con la form deve ricaricarsi vergine

    Al momento ho tolto il discorso della mail perchè il problema mio è come fare ad aprire il popup con i dati inviati dalla form (in POST) e refreshare la pagina della form nello stesso momento.

    Nella bozza che vedi, se premi invia anche senza inserire nulla ti ritrovi in alto la scrita "sono qui" generato da questo semplice codice:
    codice:
    <?php
    
    	if ($_POST['invia']) {
    		echo "sono qui";
    		echo "<script>window.open('include/form_ok.tpl.php?nome={$_POST['nome']}','pippo','width=400,height=200')</script>";
    	}
    
    	eval("\$contents .= \"".GetTemplate("templates/dynamic_contents/form.tpl.php")."\";");
    
    ?>
    
    
    ora, questo non mi apre il popup, se non quando faccio manualmente un aggiorna ma a quel punto i dati in POST sono persi!
    
    
    grazie infinite per l'aiuto!!!!
    
    r@p

  8. #8
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754

    Ok, capito

    prova a mettere nel codice del popup questo script:


    codice:
    window.opener.location.reload();
    funziona con l'apertura dei popup ma non so con i submit.
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

  9. #9
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754

    un'altra cosa

    potresti provare mettendo sull'evento onclick del tasto di submit della pagina con la form l'istruzione

    codice:
    window.location.reload
    non so se funziona, prova
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

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.