Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Risposta Ajax in DIV

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    433

    Risposta Ajax in DIV

    Buongiorno a tutti!

    ho una pagina che contiente un form e un div dove vorrei che uscisse il risultato della pagina php dopo l' elaborazione dei dati inviati tramite POST (si tratta semplicemente di un invio email)

    la pagina con il form è:
    codice:
    $(function(){
         $("#gpref").submit(function(){
    var datiem=$("#gpref").serialize();
    $.ajax({
        type:"POST",
        url: "uty/inviaemail.php",
        data: datiem,
        dataType: "html",
        success: function(msg){setTimeout(function(){ $("#risultato").html(msg); }, 10000);},
        error: function(msg){setTimeout(function(){ $("#risultato").html(msg); }, 10000);},
        complete: function(msg){setTimeout(function(){ $("#risultato").html(msg); }, 10000);}
    
    });
    });
    });
    <form  action="#" method="POST" NAME="gpref" id="gpref" >
    <input type="text" size="35" maxlength="50" name="emailto" <?php echo "value=\"$rec_email\"";?>
    <textarea name="corpoemail" rows="7" cols="40"></textarea>/>
    </form>
    
    //
    <div id="risultato"></div>
    semplice semplice
    la pagina che invia la mail è

    Codice PHP:
    //codice invio email

    .
    .
    .
    .
    .
    .


    if (!
    $mail->send()) {
        
    //echo "Errore: " . $mail->ErrorInfo;
    echo "Email non inviata!";
        
    $ok=1;
    } else {
    echo 
    "Messaggio inviato!";
        
    $ok=2;

    se faccio la richiesta classica ovvero richiamando direttamente la pagina inviaemail.php la mail parte senza problemi
    ma
    se faccio tamite ajax parte ma non vedo il risultato che viene generato nel php echo "Messaggio inviato!"; oppure echo "Email non inviata!";
    dovrebbe visualizzarsi nel div risultato

    dove sbaglio?

    ho provato anche a mettere il timeout per vedere se per caso succede qualche cosa ma nulla...


    Grazie
    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    come lo invii il form? non vedo bottoni nella tua pagina...

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    <input type="text" size="35" maxlength="50" name="emailto" <?php echo "value=\"$rec_email\"";?>
    <textarea name="corpoemail" rows="7" cols="40"></textarea>/>
    Qui c'è un errore html inserisci la textarea in un input text
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ma se la pagina restituisse letteralmente solo la parte con gli echo stamperebbe il messaggio?

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    433
    questo il form completo
    codice HTML:
    <form  action="#" method="POST" NAME="gpref" id="gpref" >
        <hr>Funzione non attiva<hr>
        <b>Invia la fattura come allegato a questo contatto:</b><br>
    Email: <br><input type="text" size="35" maxlength="50" name="emailto" <?php echo "value=\"$rec_email\"";?> /><br>
    Oggetto: <br><input type="text" size="35" maxlength="50" name="emailogg" <?php echo "value=\"Invio Fattura $numero_fattura-$anno_fattura\"";?> />
    <br>Corpo email:<br>
    <textarea name="corpoemail" rows="7" cols="40"></textarea>
    <br>
    Tipo:<select name="tipo_invio">
        <option value="1" selected>Invio normale</option>
        <option value="2">Sollecito</option>
    </select>
            <input type="hidden" name="anno"  <?php echo "value=\"$anno\"";?>  />
            <input type="hidden" name="numero"  <?php echo "value=\"$numero\"";?>  />
            <div class="comandi">
            <input class="blu" type="submit" id="sbe" name="submit" value="Invia email" onClick="return window.confirm('Confermare operazione?');">
            </div></form>
       <div id="risultato"></div>
    a me basterebbe che nel div risultato comparisse l' echo della pagina uty/inviaemail.php richimata da Jquery
    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    non usare un bottone di tipo submit (non stai facendo una submit ma una chiamata ajax), usa un button e leva quell'onclick inline e mettilo all'interno della funzione js.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    433
    Quote Originariamente inviata da Vindav Visualizza il messaggio
    non usare un bottone di tipo submit (non stai facendo una submit ma una chiamata ajax), usa un button e leva quell'onclick inline e mettilo all'interno della funzione js.
    ok quindi <button type="button">Invia</button> ma poi una volta che clicco come fa jquery che voglio inviare il form? nel senso prima era submit con submit e col bottone?
    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    codice:
    $("#sbe").click(function(){
    if(window.confirm('Confermare operazione?')){
     //chiamata ajax
    }
    });

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    433
    codice:
     
    $("#sbe").click(function(){
        if(window.confirm('Confermare operazione?')){
            //$("#gpref").submit(function(){
            var datiem=$("#gpref").serialize();
            $.ajax({    type:"POST",
                url: "uty/inviaemail.php",
                data: datiem ,
                dataType: "html",
                success: function(msg){setTimeout(function(){ $("#risultato").html(msg); }, 1000);},
                error: function(msg){setTimeout(function(){ $("#risultato").html(msg); }, 1000);},
                complete: function(msg){setTimeout(function(){ $("#risultato").html(msg); }, 1000);}
    });
    //});
    }
    }
    così???

    sotto il form
    codice HTML:
    <form  action="#" method="POST" NAME="gpref" id="gpref" >
        <hr>Funzione non attiva<hr>
        <b>Invia la fattura come allegato a questo contatto:</b><br>
    Email: <br><input type="text" size="35" maxlength="50" name="emailto" <?php echo "value=\"$rec_email\"";?> /><br>
    Oggetto: <br><input type="text" size="35" maxlength="50" name="emailogg" <?php echo "value=\"Invio Fattura $numero_fattura-$anno_fattura\"";?> />
    <br>Corpo email:<br>
    <textarea name="corpoemail" rows="7" cols="40"></textarea>
    <br>
    Tipo:<select name="tipo_invio">
        <option value="1" selected>Invio normale</option>
        <option value="2">Sollecito</option>
    </select>
            <input type="hidden" name="anno_fattura"  <?php echo "value=\"$anno\"";?>  />
            <input type="hidden" name="numero_fattura"  <?php echo "value=\"$numero\"";?>  />
            <div class="comandi">
                <button type="button" id="sbe" >Invia</button>
                   </div></form>
    <div id="risultato"></div>
    non succede nulla, addirittura non succede nulla nemmeno nel php dell' altra pagina... sembra proprio non venga chiamato...

    io ho scritto il codice JS così ma se avete altre idee suggerite pure... l' importante è che riesca a visualizzare il risultato nel div

    Grassssie ragazzi
    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    manca una parentesi alla fine, controlla la console del browser per vedere se ci sono errori di sintassi prima di scrivere qui altrimenti non ne usciamo più

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.