J'utilise ajax pour soumettre un contact depuis sans recharger la page, ça marche bien pour la plupart sauf quand j'essaye d'envoyer le corps du message rien n'est envoyé. Les parties à et à sujet fonctionnent bien, c'est juste quand le corps essaie d'être envoyé que je ne vois rien. Je l'ai testé fonctionnant avec une fonction PHP et le corps fonctionne, juste la page se recharge et je ne sais pas pourquoi ça marche ici, mais pas avec ajax. Si quelqu'un pouvait faire la lumière, ce serait génial, merci.Fonction mail PHP + ajax = frustré moi
.js
$(document).ready(function() {
$('#submit').click(function() {
var contactformdata = {
you: $('#you').val(),
subject: $('#subject').val(),
message: $('#contactbody').val(),
}
$.ajax({
url: "http://www.trenthauck.com/index.php/home/sendemail",
type: 'POST',
data: contactformdata,
success: function() {
$('#contactheader').replaceWith("<p class='header'>Thanks</p>");
$('#contactform').remove();
$('#contactlink').remove();
$(document).scrollTop(25);
}
});
return false;
});
});
Voici la fonction php (en utilisant CI, btw)
function sendemail(){
$to = "[email protected]";
$from = $this->input->post('you');
$subject = $this->input->post('subject');
$message = $this->input->post('contactbody');
$tosend = "From: " . $from . "\nMessage: " . $message;
mail($to, $subject, $message);
$this->index();
}
Et la forme si cela aide
<div class="divider" id="contact">
<p class = "header"><a id="contactheader" name="gocontact">Contact</a></p>
<div id = "contactform">
<form method = "post" id="contactform" action="<?php site_url()?>index.php/home/sendemail">
<div id ="formtitles">
<p class = "info">You:</p>
<p class = "info">Me:</p>
<p class = "info">Subject:</p>
<p class = "info">Body:</p>
<input id = "submit" type="submit" value="Send" />
</div>
<div id ="formfields">
<input id="you" type="text" name="you" /><br/>
<p class = "info">[email protected]</p>
<input id ="subject" type="text" name="subject" /><br/>
<textarea id = "contactbody" name="contactbody"></textarea>
</div>
</form>
</div>
</div>
Merci pour l'aide
Que se passe lorsque vous arrêtez avant l'appel à l'index et d'imprimer le corps du message? Vérifiez également la valeur de retour de l'appel 'mail()'. Si c'est faux, quelque chose ne va pas. (Bonne chance en pensant * que * dehors cependant, la vérification intégrée d'erreur de courrier est un peu inexistante ...) – Charles