Exercice html, php, mysql, javascript - Divers - Programmation
Marsh Posté le 29-11-2021 à 10:06:38
Ou en est tu de ton code ?
Est ce que ton formulaires et en post, tu fait toutes tes vérifications en php/mysql et tu génères le html d'affichage de réponse ?
Si oui il te suffit d'ajouter des classes du genre true et false et d'avoir du css pour leur donner un style.
Exemple rapide :
Code :
|
Marsh Posté le 30-11-2021 à 22:08:52
Bonjour,
j'ai suivi ces 3 vidéos.
Extraire les données sans recharger la page PHP
Tutoriel PHP/jQuery : Poster un formulaire en Ajax
Apprendre à utiliser ajax
Voilà où j'en suis,
à la soumission du formulaire, avec javascript et ajax je compare les bonnes réponses stockées dans mysq avec les réponses envoyées par le candidat.
Le HTML
Code :
|
Le javascript
Code :
|
Le fichier comparer.php
Code :
|
le fichier envoyer.php
Code :
|
J'obtiens bien le changement de couleur en fonction du résultat de la comparaison des réponses soumises et des réponses stockées dans MySQL.
Ce qui ne fonctionne pas dans le javascript c'est l'enregistrement de l'évaluation. Il se fait directement.
Code :
|
le if est franchi dés la soumission du formulaire. Pourtant en cas de mauvaise réponse la variable nbreErreur est mise à 1 dans la boucle for qui précéde ce if.
Marsh Posté le 01-12-2021 à 10:04:47
Ok, donc tu le fait en AJAX, c'est probablement mieux même si c'est un peu plus compliqué... ^^
Il faut que tu comprennes que quand tu envoie une requête AJAX au serveur, sa réponse n'est pas instantané, par contre vu que ton appel est dans une fonction anonyme, le script JS de ta page continue son exécution...
Donc quand tu fais une boucle sur l'envoi de tout tes posts, la réponse a ces posts se fait plus tard, par contre l’exécution de ta boucle continue et tu atteint le if sans que les réponses ai été reçu (sans compter que y'a ptet un problème de portée de ta variable aussi du coups).
Bref, soit tu récupères toutes tes solutions en un appel et tu testes toutes tes réponses "en une fois" (ça me semble mieux car ça limite le nombre de requêtes au serveur), soit tu met tes réponses dans un tableau et tu testes a chaque fois que tu as une réponse si toutes sont bien arrivées (en vérifiant la longueur de ton tableau par exemple).
Marsh Posté le 01-12-2021 à 18:45:31
Bonjour, merci pour les infos.
mechkurt a écrit : tu récupères toutes tes solutions en un appel et tu testes toutes tes réponses "en une fois" |
Si je teste tout en une fois est-ce qu'il est possible en suite de passer en vert les bonnes réponses et de passer en rouge les mauvaises ?
Marsh Posté le 02-12-2021 à 09:44:05
Oui bien sur, tu peux faire ce que tu veux ! ^^
Peut être qu'il serait plus simple pour toi dans un premier temps de soumettre ton form en ajax, de vérifier chaque valeur, de renvoyer le code html avec les bonnes classes et de le ré-afficher avec un code de ce genre :
$('form#formulaire').html(retour_serveur);
https://api.jquery.com/jquery.post/
Marsh Posté le 04-12-2021 à 07:50:50
Bonjour,
Voilà où j'en suis :
Le formulaire :
Code :
|
Le script :
Code :
|
Le fichier comparer :
Code :
|
Je suis pas très fan de ce code, renvoyer le code html n'est pas très flexible.
Je ne sais pas comment récupérer l'information que l'exercice est terminé pour pouvoir faire appel à la fonction enregistrerEvaluation().
Marsh Posté le 06-12-2021 à 11:00:55
C'est très verbeux, pourquoi dupliquer ton code html dans chaque partie du else alors que seule une infime partie diffère ?
Par exemple :
Code :
|
De la même manière au lieu d'envoyer toutes tes variables après les avoir récupéré, soumet carrément ton formulaire en ajax.
https://api.jquery.com/serialize/
Enfin si tu veux étudier une nouvelle piste moins lourde que de renvoyer tout l'html, tu peux renvoyer un tableau en json et faire l'application des classes et du résultat en javascript coté client...
Marsh Posté le 08-12-2021 à 08:02:08
Attention, le coup d'envoyer du json au navigateur pour mettre à jour une partie de la mage web, c'est en général pas exploitable par les personnes ayant un handicap visuel, leur lecteur d'écran ne détectant pas les changements et ne sachant pas à quel endroit les changements ont été fait.
Marsh Posté le 28-11-2021 à 01:12:37
Salut tout le forum ,
J’ai besoin de votre aide.
Je voudrais créer un exercice en html, php, javascript et avec msql.
L’exercice consiste à remplir des zones de texte.
Je souhaite créer un bouton pour corriger et évaluer.
Au clic sur le bouton, les bonnes réponses sont comptées, les bonnes réponses passent en vert et les mauvaises en rouges.
Les solutions sont dans une base de données mysql.
Je sais :
Lire les solutions dans mysql
Comparer la réponse de l’utilisateur à la solution
Je ne sais pas
Modifier la couleur de la zone de texte suivant le résultat de la comparaison
Faut-il que je passe un script javascript ou modifier le css et la class ?
Merci pour votre aide.