html form et ajax XMLHttpRequest + JSon : je n'arrive pas à faire fonctionner l'ensemble
Bonjour,
Je devine que le problème a été maintes fois posé et solutionné, mais je n'arrive pas à trouver la solution cependant.
Je découvre JSon et XMLHttpRequest. J'essaie d'adresser au serveur php via un formulaire html un fichier JSon accompagné du nom, pseudo (...) de l'utilisateur.
(Je programme peu pour le Web, en général je travaille sur des applis MacOS et iOS).
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
<form name="contribution" action = "FuncContribution.php" method = "post" enctype = "multipart/form-data" onsubmit = "envoieRequete(a.value, b.value,c.value, d.value)">
Votre nom : <input id = "a" type="text" name="nom" width=230></br></br>
Votre pseudonyme : <input id = "b" type="text" name="pseudonyme" width=230></br></br>
Votre mot de passe : <input id = "c" type="password" name="mdp" width=230></br></br>
Nom de votre figure : <input id = "d" type="text" name="nomFigure" width=230></br></br>
<p align="center">
<input type='submit' value = "Enregistrer votre figure dans la banque"></input></p>
</form>
<script>function envoieRequete(leNom,pseudoNom,leMdp,leNomFig){
var jsonFile = retourneLeJson();
jsonString = JSON.stringify(mesFigures);
var xhttp = new XMLHttpRequest();
var chaineRequete = "nom="+leNom+"&pseudonyme="+pseudoNom
+"&mdp="+leMdp+"&nomFigure="+leNomFig+"&variableJson="+jsonFile;
xhttp.open("POST", "FuncContribution.php", false);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send(chaineRequete);
alert("requete appelée :" + chaineRequete); //appelé
}</script> |
Voici la fonction qui crée le JSon :
Code:
1 2 3 4 5
| function retourneLeJson(){
jsonString = JSON.stringify(mesFigures);
/*mesFigures est un tableau d'instances d'une classe comportant plusieurs variables de types premiers*/
return jsonString;
} |
Je pense qu'il y a deux appels de la page php, une par le formulaire, et une par le script, et que ce script par conséquent est ignoré par le serveur. En particulier, la méthode
Code:
if (this.readyState == 4 && this.status == 200)
demeure sans réponse.
Qu'est-ce que je fais mal?
Merci par avance pour votre aide.