[JAVASCRIPT & SQL] Envoie de formulaire, pb
Dominick
-
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà, j'ai un problème lorsque je veux faire une requête Ajax sur mon serveur... Mais lorsque j'envoie le formulaire, il charge une nouvelle pages mais avec les champs et leur contenu en GET dans l'URL...
Je veux que le serveur envoie les données post et qu'ensuite il affiche si la requête à été effectué avec succès ou s'il y a eu une erreur dans une boite avec l'id sql...
Voici mon code Javascript:
Et ensuite voici mon code php à qui php fait appelle... Entre les if($p=='var')...:
et ensuite mon Formulaire:
L'alerte apparait disant que les données on étés envoyées mais, le seul problème est que rien n'est envoyé !!!
Je ne trouves pas l'erreur,
Cordialement,
Dominick Labrie
Voilà, j'ai un problème lorsque je veux faire une requête Ajax sur mon serveur... Mais lorsque j'envoie le formulaire, il charge une nouvelle pages mais avec les champs et leur contenu en GET dans l'URL...
Je veux que le serveur envoie les données post et qu'ensuite il affiche si la requête à été effectué avec succès ou s'il y a eu une erreur dans une boite avec l'id sql...
Voici mon code Javascript:
// Requette AJAX function makeRequest(id_ecrire1){ var http_request = false; //créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Abandon :( Impossible de créer une instance XMLHTTP'); return false; } http_request.onreadystatechange = function() { traitementReponse(http_request,id_ecrire); } //affectation fonction appelée qd on recevra la reponse // lancement de la requete http_request.open("POST", 'p.php?p=managearticle&job=mod&id=<?php echo $id; ?>', true); //changer le type MIME de la requête pour envoyer des données avec la méthode POST , !!!! cette ligne doit etre absolument apres http_request.open('POST'.... http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); ///// ici tu peux rajouter les autres valeurs que tu as passees en arguments lors de l'appel de la fonction var a1=encodeURIComponent(document.getElementById("articlename").value); var a2=encodeURIComponent(document.getElementById("tiny").value); var a3=encodeURIComponent(document.getElementById("elm1").value); var a4=encodeURIComponent(document.getElementById("elm2").value); var a5=encodeURIComponent(document.getElementById("cat").value); var a6=encodeURIComponent(document.getElementById("modarticle").value); data="articlename="+a1+"&article="+a2+"&summary="+a3+"&source="+a4+"&cat="+a5+"&modarticle="+a6; http_request.send(data); alert('Données envoyés !'+data); } function traitementReponse(http_request,id_ecrire) { var affich=""; if (http_request.readyState == 4) { if (http_request.status == 200) { // cas avec reponse de PHP en mode texte: //chargement des elements reçus dans la liste var affich_list=http_request.responseText; obj = document.getElementById(id_ecrire); obj.innerHTML = affich_list; } else { alert('Un problème est survenu avec la requête.'); } } }
Et ensuite voici mon code php à qui php fait appelle... Entre les if($p=='var')...:
<?php $articlename = $_POST['articlename']; $article = $_POST['article']; $summary = $_POST['summary']; $source = $_POST['source']; $cat = $_POST['cat']; $sql = 'UPDATE base SET articlename = "'.$articlename.'", article = "'.$article.'", summary = "'.$summary.'", source = "'.$source.'", cat = "'.$cat.'" WHERE id = "'.$id.'"'; $requete = mysql_query($sql); if($requete) { echo '<td bgcolor="#111111">La modification de l\'article s\'est effectué avec succès!</td>'; } else { echo '<td bgcolor="darkred">Il eu une erreur dans la requête.'; } ?>
et ensuite mon Formulaire:
<form name="modarticle"> <table> <tr> <td align="right">Upload de fichier:</td> <td align="left" colspan="2"><a href="#" id="iframe">Montrer/Cacher</a><br /> <iframe scrolling="no" height="200px" width="530px" src="up.php" id="upload" style="border:0px; display:none;"></iframe></td> </tr> <tr> <td align="right">Nom de l'article :</td> <td align="left" colspan="2"><input type="text" id="articlename" name="articlename" maxlength="50" value="<?php echo $an['articlename']; ?>"/></td> </tr> <tr> <td align="right">Utilisateur :</td> <td align="left" colspan="2"><input type="text" value="<?php echo $an["username"]; ?>" disabled="disabled" /></td> <tr> <td align="right">Article :</td> <td align="left" colspan="2"><textarea name="article" id="tiny" rows="10" cols="50" /><?php echo $an['article']; ?></textarea></td> </tr> <tr> <td align="right">Extrait d'article :</td> <td align="left" colspan="2"><textarea id="elm1" name="summary" rows="5" cols="40" /><?php echo $an['summary']; ?></textarea></td> </tr> <tr> <td align="right">Via (Source)*:</td> <td align="left"><textarea id="elm2" rows="2" cols="40" name="source" maxlength="250"><?php echo $an['source']; ?></textarea></td> <td>*250 caractères maximum</td> </tr> </tr> <td align="right">Catégorie:</td> <td align="left" colspan="2"><input type="text" id="cat" name="cat" value="<?php echo $an['cat']; ?>" /></td> </tr> <tr> <td align="left" colspan="3"><small>*Champ optionnel.</small></td> </tr> <tr> <td align="center" colspan="3"><input type="button" value="Soumettre l'article" id="modarticle" name="modarticle" onsubmit="makeRequest('sql');" /></td> </tr> </table> </form>
L'alerte apparait disant que les données on étés envoyées mais, le seul problème est que rien n'est envoyé !!!
Je ne trouves pas l'erreur,
Cordialement,
Dominick Labrie
A voir également:
- [JAVASCRIPT & SQL] Envoie de formulaire, pb
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Envoie impossible messenger - Forum Facebook Messenger
- Echec d'envoi message sur Messenger - Forum Facebook Messenger
4 réponses
Tiens je reconnais une de mes fonctions Ajax
pour qu'une reponse soit affichee il faut que dans ta page de formulaire il y ait un div avec l'id_ecrire
dans ton cas
ensuite inutile de mettre des trucs dans l'url en post
// lancement de la requete
http_request.open("POST", 'p.php?p=managearticle&job=mod&id=<?php echo $id; ?>', true);
ensuite pourquoi encodeURIComponent c'est inutile
ensuite tu mets un bouton type="button" et tu mets onsubmit=.... ??
il faut:
pour qu'une reponse soit affichee il faut que dans ta page de formulaire il y ait un div avec l'id_ecrire
dans ton cas
<div id="sql"></div>
ensuite inutile de mettre des trucs dans l'url en post
// lancement de la requete
http_request.open("POST", 'p.php?p=managearticle&job=mod&id=<?php echo $id; ?>', true);
// lancement de la requete http_request.open("POST", 'p.php', true);
ensuite pourquoi encodeURIComponent c'est inutile
ensuite tu mets un bouton type="button" et tu mets onsubmit=.... ??
il faut:
<input type="button" value="Soumettre l'article" id="modarticle" name="modarticle" onClick="makeRequest('sql');" />
Normal qe ca ne marche
tu appelle une page p>php en lui passant des parametres ar l'url OK
quoique avec ajax en method POST ?? a voir
les donnees lues dans ton formulaire tu les envoie en Ajax en POST au script p.php et pas aux autres scripts
C'est tres tres complique comme tu fais, tes valeurs ne suivent pas
tu appelle une page p>php en lui passant des parametres ar l'url OK
quoique avec ajax en method POST ?? a voir
les donnees lues dans ton formulaire tu les envoie en Ajax en POST au script p.php et pas aux autres scripts
C'est tres tres complique comme tu fais, tes valeurs ne suivent pas
2. Je dois mettre des variables... Car la pages où je modifie l'article à cette adresse... :
Ma page où je modifie à du style donc: index.php?p=managearticle&job=mod&id=23
Tandis que la page que j'appelle est p.php?p=managearticle&job=mod&id=23 et n'a PAS de style... Elle a une sécurité d'include...
Code source de p.php...
et ensuite la page managearticle.php que j'appel avec le $p qui ensuite redirige vers un if $job et qui ensuite est redivisé avec un autre if... je vous montre le contenu du if $job=='mod'
Va sur ce lien... je vais arrêter de polluer
http://pastebin.com/m3c8ef240