Bonjour tout le monde,
Alors voilà je me lance à la découverte du JS et de l'AJAX et je galère un peu sur un formulaire.
Je vous explique un peu mon problème :
J'ai formulaire qui est contenu dans mon "index.php".
Quand je valide ce formulaire, je lance un vérification en javascript (ça c'est bon ça marche nikel).
Ensuite, si il y a un champ non rempli, j'affiche une alerte (ça marche aussi).
Quand il n'y a pas d'erreurs, je passe les données du formulaire vers un second fichier "suite.php" qui à terme fera lui aussi une vérification des données (en PHP) et entrera les données dans la base.
Voilà donc le principe. Là où j'ai un problème (dans le fichier "ajax_go.js" je pense), c'est que je n'arrive pas à faire apparaître le fichier "suite.php" dans le div prévu à cet effet (nom du div : info).
Je vous mets le code de mes fichiers ci-dessous.
index.php<html>
<head>
<script src="javascript/ajax.js" type="text/javascript"></script>
<script src="javascript/ajax_go.js" type="text/javascript"></script>
</head>
<body>
<?php
if (isset($_POST['nom']))
{
$nom=$_POST['nom'];
}
if (!isset($_POST['nom']))
{
$nom="";
}
if (isset($_POST['prenom']))
{
$prenom=$_POST['prenom'];
}
if (!isset($_POST['prenom']))
{
$prenom="";
}
?>
<div id="page">
<form name="formulaire" method="POST" onSubmit="verif_4()">
<fieldset><legend>Inscription</legend>
<div id="info">
<label>Nom :</label> <input type="text" id="nom" name="nom" <?php echo "value='".$nom."'" ?> >
<br>
<br>
<label>Prénom :</label> <input type="text" id="prenom" name="prenom" <?php echo "value='".$prenom."'" ?> >
<br>
<br>
<input type="submit" name="submit" value="Validation">
</div>
</fieldset>
</form>
</div>
</body>
</html>
suite.php<?php
echo $_POST['Nom'];
echo "<br>";
echo $_POST['Prenom'];
?>
ajax.jsfunction getXhr()
{
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject)
{ // Internet Explorer
try
{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else
{ // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}
ajax_go.jsfunction verif_4()
{
// Préparation du message d'erreur
message="Vous devez remplir le(s) champ(s) suivant(s) :\n\n";
// Initialisation de la variable d'erreur
erreur=0;
// Vérification de la variable nom
if (document.formulaire.nom.value=="")
{
// modification du message d'erreur
message=message+" - nom\n";
// modification de la variable d'erreur
erreur=1;
}
// Vérification de la variable prenom
if (document.formulaire.prenom.value=="")
{
// modification du message d'erreur
message=message+" - prenom\n";
// modification de la variable d'erreur
erreur=1;
}
// Si une erreur a été détectée
if (erreur==1)
{
// On affiche le message
alert(message);
// on renvoie les valeurs saisies par l'utilisateur pour lui éviter de resaisir les infos qu'il a déjà saisi
xhr.open("POST","index.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
nom=document.formulaire.nom.value;
prenom=document.formulaire.prenom.value
xhr.send("nom="+nom+"prenom"+prenom);
}
// Si il n'y a pas d'erreur, on charge suite.php dans le div info. C'est donc ici que ça ne marche pas.
if (erreur==0)
{
var xmlHttpReq = false;
var self = this;
// Mozilla/Safari
if (window.xmlHttpRequest)
{
self.xmlHttpReq = new XMLHttpRequest();
}
// IE
else if (window.ActiveXObject)
{
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
self.xmlHttpReq.open('POST', 'suite.php', true);
self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
self.xmlHttpReq.onreadystatechange = function()
{
if (self.xmlHttpReq.readyState == 4)
{
document.getElementById("info").innerHTML=(self.xmlHttpReq.responseText);
}
}
nom=document.formulaire.nom.value;
prenom=document.formulaire.prenom.value
xhr.send("nom="+nom+"prenom"+prenom);
}
}
Si quelqu'un pouvait me renseigner sur mon erreur, ce serait super cool.
Merci d'avance pour vos réponses.
Sylvère
Malheur à qui me frôle, bonheur à qui me prend
Malheur à qui me frôle, bonheur à qui me prend