A 
		
				
				
			
		Anonymous
			Guest
			
		Bonjour à tous,
Dans la lignée du post d'Olivier sur la programmation en AJAX pour les titres des sujets d'un forum, je vous soumets un exemple basique de dév d'un formulaire en AJAX:
en 3 fichiers...
le fichier contact_forum.php
	
	
	
		
le fichier getfile.php (ne rien modifier dans ce fichier)
	
	
	
		
le fichier contact_forum_check.php
	
	
	
		
Voilà, ca peut servir à certains.
Ca peut sembler basique à d'autres
Mais aussi ca peut pousser d'autres membres à poster des scripts tout fait en AJAX...
Xp
				
			Dans la lignée du post d'Olivier sur la programmation en AJAX pour les titres des sujets d'un forum, je vous soumets un exemple basique de dév d'un formulaire en AJAX:
en 3 fichiers...
le fichier contact_forum.php
		Code:
	
	<script type="text/javascript">
url = document.location.href;
xend = url.lastIndexOf("/") + 1;
var base_url = url.substring(0, xend);
var ajax_get_error = false;
function ajax_do (url) {
	if (url.substring(0, 4) != 'http') {
		url = base_url + url;
	}
	var jsel = document.createElement('SCRIPT');
	jsel.type = 'text/javascript';
	jsel.src = url;
	document.body.appendChild (jsel);
	return true;
}
function ajax_get (url, el) {
	if (typeof(el) == 'string') {
		el = document.getElementById(el);
	}
	if (el == null) { return false; }
	if (url.substring(0, 4) != 'http') {
		url = base_url + url;
	}
	getfile_url = base_url + 'getfile.php?url=' + escape(url) + '&el=' + escape(el.id);
	ajax_do (getfile_url);
	return true;
}
function submit_form() {
	
	// on set les variables
	var name = document.getElementById('name').value;
	var email = document.getElementById('email').value;
	var comment = document.getElementById('comment').value; 
	
	//on envoie vers le fichier contact_forum-check.php
	url = 'contact_forum-check.php?name=' + escape(name) + '&email=' + escape(email) + '&comment=' + escape(comment);
	
	// on renvoie les résultats dans le div id result
	ajax_get (url, 'result'); 
}
</script>
<dl>
<dt>Votre nom :</dt>
<dd><input type="text" name="name" id="name" value="" size="60" /></dd>
<dt>Votre email :</dt>
<dd><input type="text" name="email" id="email" value="" size="60" /></dd>
<dt>Votre message :</dt>
<dd><textarea name="comment" id="comment" cols="90" rows="8" /></textarea></dd>
<dd><input type="button" name="Envoyer" value=" Envoyer votre message " onClick="submit_form();"><br />
<div id="result"> </div>
</dd>
</dl>
	le fichier getfile.php (ne rien modifier dans ce fichier)
		Code:
	
	<?php
// Get URL and div
if (!isset($_GET['url'])) { die(); } else { $url = $_GET['url']; }
if (!isset($_GET['el'])) { die(); } else { $el = $_GET['el']; }
// Make sure url starts with http
if (substr($url, 0, 4) != 'http') {
        // Set error
        echo 'alert(\'Security error; incorrect URL!\');';
        die();
}
// Try and get contents
$data = @file_get_contents($url);
if ($data === false) {
        // Set error
        echo 'alert(\'Unable to retrieve "' . $url . '"\');';
        die();
}
// Escape data
$data = str_replace("'", "\'", $data);
$data = str_replace('"', "'+String.fromCharCode(34)+'", $data);
$data = str_replace ("\r\n", '\n', $data);
$data = str_replace ("\r", '\n', $data);
$data = str_replace ("\n", '\n', $data);
?>
el = document.getElementById('<?php echo $el; ?>');
el.innerHTML = '<?php echo $data; ?>';
	le fichier contact_forum_check.php
		Code:
	
	<?php
// date du jour
$date = date("d M Y à H:i:s");
// fonction verif format email
function CheckEmail($email_auteur){
	$motif1  = "^[[:alnum:]]([[:alnum:]\._-]{0,})[[:alnum:]]";
	$motif1 .= "@";
	$motif1 .= "[[:alnum:]]([[:alnum:]\._-]{0,})[\.]{1}([[:alpha:]]{2,})$";
	$motif2 = "[\.]{2,}";
	return (ereg($motif1, $email_auteur) && !ereg($motif2, $email));
}
if (empty($_GET['name'])) { // SI PAS DE NOM
	die ("<br/><font style=\"color:#cc0000\"><img src='no.gif' alt='' /> Veuillez entrer votre nom...</font><br/>");
}
if (empty($_GET['email'])) { // SI PAS D'EMAIL
	die ("<br/><font style=\"color:#cc0000\"><img src='no.gif' alt='' /> Veuillez entrer votre email...</font><br/>");
}
if(!CheckEmail($_GET['email'])&&($_GET['email'])){ // VERFIFE LE FORMAT DE l'EMAIL
	die ("<br/><font style=\"color:#cc0000\"><img src='no.gif' alt='' /> Le format de votre adresse e-mail n'est pas valide...</font><br/>");
}
if (empty($_GET['comment'])) { // SI PAS COMMENTAIRE
	die ("<br/><font style=\"color:#cc0000\"><img src='no.gif' alt='' /> Veuillez entrer votre message...</font><br/>");
}
// SI TOUT EST BON
	echo "<br><font style=\"color:#1A7917\"><img src='yes.gif' alt='' /> Votre email a été envoyé avec succès...<br>Nous prendrons contact avec vous dans les meilleurs délais.</font><br/>";
	$recipient = "votreemail@toto.fr";
	$subject = "Formulaire de contact";
	$mailheaders = "From: <".$_GET['email']."> \r\n";
	$mailheaders .= "Reply-To: <".$_GET['email']."> \r\n";
	$mailheaders .= "Bcc: ".$adminemail2." \r\n";
	$mailheaders .= "Return-Path: <votreemail@toto.fr> \n";
	$mailheaders .= "X-Sender: <votreemail@toto.fr> \n";
	$mailheaders .= "X-Mailer: PHP \n"; 
	$mailheaders .= "X-Priority: 1 \n"; 
	$mailheaders .= "MIME-Version: 1.0 \n"; 
	$mailheaders .= "Content-Type: text/html; charset=iso-8859-1 \n";
	$msg = "<br>\n";
	$msg .= "$date |  ".stripslashes($_GET['name'])." <br>\n";
	$msg .= " <br>\n";
	$msg .= stripslashes($_GET['comment'])." <br>\n";   
	$msg .= "<br>\n";
	$msg .= "<br>\n";
	mail($recipient, $subject, $msg, $mailheaders) or die("Impossible d'envoyer le mail...");
?>
	Voilà, ca peut servir à certains.
Ca peut sembler basique à d'autres
Mais aussi ca peut pousser d'autres membres à poster des scripts tout fait en AJAX...
Xp