J'ai un formulaire de contact AJAX sur mon site Web (www.chrisanstey.co.uk), qui n'est pas soumis uniquement dans Firefox, mais fonctionne parfaitement bien dans tous les autres navigateurs. Le formulaire est utilise le fichier PHP suivant:AJAX Formulaire de soumission (Uniquement sur Firefox)
<?php
$to = "[email protected]"; //This is the email address you want to send the email to
if(!isset($_GET['action']))
{
die("You must not access this page directly!"); //Just to stop people from visiting contact.php normally
}
/* Now lets trim up the input before sending it */
$name = trim($_GET['name']); //The senders name
$email = trim($_GET['email']); //The senders email address
$subject = "A message sent from " . $name . " on Chris Anstey's portfolio"; //The senders subject
$message = trim($_GET['msg']); //The senders message
mail($to,$subject,$message,"From: ".$email.""); //a very simple send
echo 'contactarea|<p>Thank you '.$name.' for your message, I will reply to you as soon as I can.</p>'; //now lets update the "contactarea" div on the contact.html page. The contactarea| tell's the javascript which div to update.
?>
et aussi le fichier javascript suivant:
function createRequestObject() {
var ro;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
ro = new ActiveXObject("Microsoft.XMLHTTP");
}else{
ro = new XMLHttpRequest();
}
return ro;
}
var http = createRequestObject();
function sendemail() {
var msg = document.contactform.msg.value;
var name = document.contactform.name.value;
var email = document.contactform.email.value;
document.contactform.send.disabled=true;
document.contactform.send.value='Sending....';
http.open('get', 'contact.php?msg='+msg+'&name='+name+'&email='+email+'&action=send');
http.onreadystatechange = handleResponse;
http.send(null);
}
function handleResponse() {
if(http.readyState == 4){
var response = http.responseText;
var update = new Array();
if(response.indexOf('|' != -1)) {
update = response.split('|');
document.getElementById(update[0]).innerHTML = update[1];
}
}
}
Le formulaire est dans une page Wordpress, être appelé sur le modèle par le code HTML suivant:
<div id="contactarea">
<form name="contactform" id="contactform">
<p>Full Name:<br />
<span class="wpcf7-form-control-wrap your-name"><input type="text" name="name"></span></p>
<p>Email:<br />
<span class="wpcf7-form-control-wrap your-email"><input type="text" name="email"></span></p>
<p>Message:<br />
<span class="wpcf7-form-control-wrap your-message"><textarea name="msg" rows="6" id="textarea"></textarea></span></p>
<p><input type="submit" value="Send Email" name="send" id="submitbutton" onClick="sendemail();"></p>
</form>
</div>
Si quelqu'un a une idée ou a rencontré des problèmes similaires avec AJAX ne fonctionne pas dans Firefox, s'il vous plaît pourriez-vous répondre. Toute aide serait très appréciée!
Lorsque le formulaire soumet il devrait m'envoyer un email avec le contenu de ce que l'utilisateur a entré dans le formulaire, puis leur donner un petit message pour leur faire savoir que le formulaire a traversé. Quand je le teste, l'URL change (ce qui ne devrait pas être le cas) pour afficher la requête PHP et l'email n'est pas envoyé. Des idées? –
Oh ok, allez, alors ne mettez pas vos entrées à l'intérieur d'un formulaire, et vous serez mis. sortez les étiquettes de formulaire. Aussi, vous devriez changer votre 'input type =" submit "' 's en' input type = "bouton" '' s – Rahly