Problème de confusion
- Accueil
- Forum
- Programmation
- JavaScript
- Problème de confusion
TrecKo Le 4 août 2016 à 17:45 (Édité le 25 janvier 2019 à 17:52)
Je rencontre un petit problème avec du javascript, sachant que c'est la première fois que je développe dans se langage, je ne m'y connais pas trop.
Alors, j'ai un formulaire
<form method="POST">
<input type="text" name="titre" /><br /><br />
<textarea type="text" name="description"></textarea><br /><br />
<input type="text" name="url" /><br /><br />
<input type="text" name="image" /><br /><br />
<input onclick="refresh()" type="submit" name="ajouterform" value="Valider" />
</form>
Donc comme vous pouvez le voir, dans mon input de type submit, j'ai mis le onclick qui déclenchera ma fonction javascript.
Voici mon code de javascript
function refresh() {
var x = document.getElementById("erreur");
x.className = "visible";
setTimeout(function(){ x.className = x.className.replace("visible", ""); }, 3000);
}
Normalement quand je clique sur le bouton ( type submit ), le javascript ajoute la classe visible à ma div id = erreur et quand la class visible est mise, le message d'erreur s'affiche. Mais moi quand je clique sur le bouton pour valider, bah sa fait rien, la class ne s'ajoute pas à ma div :/
Et quand je créer un <button> en dehors du <form> avec le onclick, bah la le script fonctionne :/
Je ne sais pas si c'est possible de déclencher le onclick dans un <form method="post">..
Si vous pouvez me donner des pistes pour que je puisse résoudre mon problème 😀
Merci de votre compréhension.
Cordialement, TrecKo
TheOldNoob Le 4 août 2016 à 19:04 (Édité le 1 janvier 1970 à 01:00)
Oublie le js pour faire tes message d'erreur, on ne vérifie plus les formulaires en js depuis un moment, parce que c'est compliquer et que c'est pas des super vérifications.
Utilise du php, si tu a besoin de piste pour t'aider a faire des condition qui ferons aparaitre un message d'erreur, de succes ou simplement faire disparaitre ton formulaire en cas de succes, je t'aiderais 😀
TrecKo Le 4 août 2016 à 19:14 (Édité le 1 janvier 1970 à 01:00)
Tu as pas très bien compris ce que je voulais dire ^^
Donc si tu veux, j'ai un formulaire de contact, j'ai fais les vérifications en PHP et tout, la base. Après pour afficher l'erreur, j'ai fais une condition
<?php if(isset($erreur)) { echo $erreur; } ?>
Et autour de cette ligne de code, j'ai mis des balise <div>, ce qui donne ceci
<div id="erreur"><?php if(isset($erreur)) { echo $erreur; } ?></div>
Et, ce que je veux faire, c'est que quand j'appui sur le bouton 'Envoyer" de mon formulaire de contact, sa envoi le formulaire dans ma base de donnée et en même temps sa déclenche mon script javascript et le script javascript va ajouter une classe à ma <div id="erreur">
L'envoi du formulaire dans la base de donnée sa fonctionne, niveau PHP tout est bon mais c'est au niveau du bouton "Envoyer" pour déclencher pour script javascript :/
Pour le moment, quand je clique sur Envoyer, les informations se mettent bien dans ma base de donnée mais le javascript ne se déclenche pas, du coup mon erreur ne s'affiche pas car mon erreur s'affiche que si la class="visible" est dans la <div id="erreur"> mais comme sa ne déclenche pas le script, ma class ne s'ajoute pas et mon erreur n'apparaît pas.
je suis embêter avec sa, et comme je l'ai dit, c'est la première fois que je développe du javascript du coup je ne m'y connais pas trop trop :/
TheOldNoob Le 4 août 2016 à 19:44 (Édité le 1 janvier 1970 à 01:00)
Donc tu veux juste que en cas d'erreur, ça affiche ta div id="erreur" ?
TrecKo Le 4 août 2016 à 19:48 (Édité le 4 août 2016 à 19:51)
Mais j'ai essayé de mettre l'input hors des balises <form> et là le script s'exécute. Et le script ne s'exécute pas quand l'input est entre les balises <form>
Car entre les balises <form> sa va exécuter mon formulaire et sa ne veux pas exécuter le script JS en même temps que l'envoi du formulaire.
Je ne sais pas si tu vois où je veux en venir ^^
TheOldNoob Le 4 août 2016 à 20:01 (Édité le 1 janvier 1970 à 01:00)
TrecKo Le 4 août 2016 à 20:17 (Édité le 4 août 2016 à 20:20)
Alors, j'ai mon formulaire, il fonctionne parfaitement, avant j'avais un CSS pour les erreurs mais j'ai envie de modifier le CSS, du coup j'ai vu un peux sur le net des effets avec du JS, lorsqu'on clique sur un bouton, un message s'affiche et disparaît au bout de x secondes.
Donc là, la div qui contient l'erreur à du CSS pour le design et il a display: none donc forcément sa n'affiche pas la box et lorsqu'on clique sur le bouton, une classe s'ajoute à notre div, pour moi c'est la class visible et cette classe visible dans le CSS je lui ai mis display: block pour qu'on puisse la voir et avec le JS au bout de 3 secondes, la class s'enlève de la div et la box redevient invisible.
Moi j'ai essayer de faire sa pour mes messages d'erreurs, donc j'ai mon CSS, et au niveau du bouton quand je clique sur le bouton, sa m'exécute le code PHP et sa ne veux pas m'exécuter en même temps mon code JS qui va servir à ajouter la class visible dans ma div pour que le message d'erreur s'affiche.
J'ai essayer de mettre le bouton hors des balises <form> et le script JS s'exécute bien et à partir du moment où le bouton est dans le <form> le script JS ne s'exécute pas..
J'espère que tu as compris ce que je veux faire mdr
Après je peux faire sans script et afficher juste l'erreur mais j'aimerai bien un peux d'animation sur mon site du coup faire apparaitre la class lors de l'appui du bouton et supprimer la class après 3 secondes écoulées.
TheOldNoob Le 4 août 2016 à 20:34 (Édité le 1 janvier 1970 à 01:00)
TrecKo Le 4 août 2016 à 20:40 (Édité le 1 janvier 1970 à 01:00)
Merci quand même 😄
TheOldNoob Le 4 août 2016 à 20:52 (Édité le 1 janvier 1970 à 01:00)
Dés fois on va chercher trop loin des trucs pas forcement utile. Du coup on se complique la vie ^^