Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    37

    richiamare PHP in javascript

    ciao

    ho realizzato un form e quando clicco il tasto di invio devo verificare se i due campi "oggetto" e "messaggio" sono compilati; di conseguenza deve inviare una mail all'amministratore che dice che è stata inserita una nuova discussione

    sapreste dirmi se è possibile richiamare una funzione php da una funzione javascript?
    pechè la funzione email(), in php, da sola funziona e anche la funzione Modulo()in Javascript, il problema è quando cerco di richiamarne una dall'altra.

    se non è possibile richiamare la funzione come posso riscrivere la funzione Modulo in php?

    codice:
    <form id="form1" action="mail.php" method="post" name="discussione">
     OGGETTO 
    </br>
     <input name="oggetto" type="text" size="50" />
    </br>
     MESSAGGIO 
    </br>
     <textarea name="messaggio" cols="80" rows="10"></textarea>
    </br>
    </br>
     <input name="invia" type="submit" value="invia" onclick="Modulo()" />
    </form>
    
    
       <script language="javascript" type="text/javascript">
    <!--
      function Modulo() {
      
            var formx = document.getElementById("form1");
    
            if ((formx.oggetto.value != "")) {
    		   if ((formx.messaggio.value != ""))
                 <? email()?>
        }
               return false;
            } 
    -->
    </script>
    Codice PHP:
    <? 
    function email(){
       
    $destinatario="email@dominio.it";
       
    $oggetto="nuova discussione";
       
    $testo="è stata aggiunta un a nuova discussione nel forum";
      
    mail($destinatario,$oggetto,$testo);

      } 
    ?>

  2. #2
    Utente di HTML.it L'avatar di DydBoy
    Registrato dal
    Jul 2005
    Messaggi
    165
    Non ti conviene fare un pastrocchio del genere.

    Utilizza il javascript per lo scopo per il quale è nato, valida il form e limitati a ritornare un true o false.

    Sul form invece aggiungi un onSubmit="return controlla()".
    L'action a mail.php è corretto lí avrai la tua chiamata alla funzione di inivio mail.
    Se invece sei giá in mail.php e vuoi ritornare nella stessa pagina ma con la email mandata aggiungi, ad esempio, un campo hidden e su quello fai il controllo nel mail.php.

    Se c'è vuol dire che è stato fatto un submit quindi mando la mail, altrimenti no.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    37
    scusa ma non sono molto pratico, controlla() corrisponderebbe al mio Modulo() ma onSubmit="return controlla()" cosa mi restituisce?e dove trovo il dato che mi restituisce?


    sono già sulla pagina mail.php e avevo cercato di fare il controllo sui dati del tipo if $_POST['messaggio']!="" ma mi inviava l'email anche quando visualizzo l'anteprima.. non c'è la possibilita di scrivere in php qualcosa del genere: if formx.oggetto.value != ""

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    senza entrare nel merito del giusto o sbagliato, per fare quello che chiedi devi usare una chiamata Ajax, che tramite una chiamata che va in background esegue una pagina php con il codice per invio della mail.

    Esistono diverse librerie che facilitano il compito.

    ciao

  5. #5
    Utente di HTML.it L'avatar di DydBoy
    Registrato dal
    Jul 2005
    Messaggi
    165
    Originariamente inviato da Penny66
    scusa ma non sono molto pratico, controlla() corrisponderebbe al mio Modulo() ma onSubmit="return controlla()" cosa mi restituisce?e dove trovo il dato che mi restituisce?


    sono già sulla pagina mail.php e avevo cercato di fare il controllo sui dati del tipo if $_POST['messaggio']!="" ma mi inviava l'email anche quando visualizzo l'anteprima.. non c'è la possibilita di scrivere in php qualcosa del genere: if formx.oggetto.value != ""
    controlla() ritorna vero se il form è stato riempito correttamente altrimenti falso.
    L'evento onsubmit quindi riceve questo boolean e fa il submit solo se riceve un true, ossia il form è stato riempito correttamente.

    Sul php puoi fare un controllo sulla $_POST['messaggio'], nel caso questa variabile ci fosse significa che è stato fatto un submit, mi segui ?
    Invece di mettere $_POST['messaggio']!="" prova ad usare la isset($_POST['messaggio']) per fare il controllo sul "devo mandare o no".

    Spero di esserti d'aiuto.

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.