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

    form mail con ajax e php

    Ciao a tutti.
    premettendo che non sono molto esperto di ajax, provo ad illustrare uno strano problema.
    Ho realizzato un piccolo form-mail con ajax e php sulla base ti un tutorial trovato in rete.
    Il modulo funziona correttamente ma si presenta uno strano bug.
    Ho due field <input type="text"/> e un field <textarea> nel quale scrivo il messaggio che deve essere inviato.
    Stranamente, se nella textarea vado "a capo" nel testo con il pulsante di invio e e poi provo ad inviare il messaggio, l'invio si blocca nella fase "invio messaggio in corso"...questacosa non accade se scrivo il messaggio SENZA andare a capo.
    Da cosa potrebbe dipendere questo BUG?
    Grazie mille per ogni interessamento e/o aiuto
    non esistono che molteplici parvenze e contraddittorie sembianze della stessa apparenza

  2. #2
    puoi postare l'esempio da cui hai preso spunto?
    I DON'T Double Click!

  3. #3
    Innanzitutto grazie per il tuo intervento...
    Di seguito riporto le due funzioni (una di validazione del modulo e una per l'invio).

    Codice PHP:
    $(document).ready(function(){
    $(
    "#sendinfo").click(function(){
    var 
    nome = $("#nome").val();
    var 
    email = $("#email").val();
    var 
    oggetto = $("#oggetto").val();
    var 
    messaggio = $("#messaggio").val();
    var 
    privacy document.getElementById('privacy').checked;
    if (
    nome.length<1||messaggio.length<1) {
        
    valid 'Mancano informazioni necessarie al corretto invio.';
        $(
    "#risposta").fadeIn("slow");
        $(
    "#risposta").html(valid);
    }
    else if (!
    email.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
        
    valid '&egrave; necessario inserire un indirizzo e-mail valido';
        $(
    "#risposta").fadeIn("slow");
        $(
    "#risposta").html(valid);
    }
    else if (!
    privacy) {
        
    valid '&egrave; necessaria l&rsquo;accettazione del trattamento dei dati personali';
        $(
    "#risposta").fadeIn("slow");
        $(
    "#risposta").html(valid);
    }
    else {
        var 
    datastr ='nome=' nome '&email=' email '&oggetto=' oggetto '&messaggio=' messaggio;
        $(
    "#risposta").css("display""block");
        $(
    "#risposta").html("Invio il messaggio...");
        $(
    "#risposta").fadeIn("slow");
        
    setTimeout("send('"+datastr+"')",2000);
    }
    return 
    false;
        });
    });

    function 
    send(datastr){
        $.
    ajax({    
    type"POST",
    url"http://localhost/fontanamarina/wp-content/themes/fontanamarina/sendmail.php",
    datadatastr,
    cachefalse,
    success: function(html){
    $(
    "#risposta").fadeIn("slow");
    $(
    "#risposta").html(html);
    setTimeout('$("#risposta").fadeOut("slow")',2000);
    document.richiesta_info.reset();
        }
        });

    non esistono che molteplici parvenze e contraddittorie sembianze della stessa apparenza

  4. #4
    beh, credo che il problema è che non fai alcun escape dei caratteri speciali, quindi l'"a capo" resta tale e ti fa scoppiare la funzione, prova a mettere:

    Codice PHP:
    var nome encode($("#nome").val());
    var 
    email encode($("#email").val());
    var 
    oggetto encode($("#oggetto").val());
    var 
    messaggio encode($("#messaggio").val()); 
    Anche se non so se questo ti altera l'indirizzo e-mail fino a non fartelo validare dalla RegExp, fai un paio di prove.

    P.S: email è l'email del mittente che viene messo come From: alla mail, vero?
    I DON'T Double Click!

  5. #5
    Ho testato il tuo consiglio, ma la situazione non cambia...se mando a capo il messaggio, l'invio continua a bloccarsi su "invio messaggio in corso"...
    non esistono che molteplici parvenze e contraddittorie sembianze della stessa apparenza

  6. #6
    installa firefox e firebugs e vedi se ti da errore in quel caso, così hai qualcosa su cui lavorare.
    I DON'T Double Click!

  7. #7
    Ho seguito il tuo consiglio e devo dire che è stato provvidenziale!!!!
    tuto risolto.
    Quello che creava il fastidio era appunto l'a-capo "\n" che creava unqulche errore di codifica.
    mi sono limitato ad inserire un "replace" nella funzione javascript prima dell'invio al php e ora funziona perfettamente.
    Grazie ancora per il tuo fondamentale aiuto
    non esistono che molteplici parvenze e contraddittorie sembianze della stessa apparenza

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.