Mon code ne s'execute pas
Fermé
metronome237
Messages postés
34
Date d'inscription
mercredi 11 août 2021
Statut
Membre
Dernière intervention
10 septembre 2021
-
7 sept. 2021 à 10:31
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 10 sept. 2021 à 18:21
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 10 sept. 2021 à 18:21
A voir également:
- Mon code ne s'execute pas
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
10 réponses
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
7 sept. 2021 à 11:05
7 sept. 2021 à 11:05
Bonjour,
Commence par regarder dans la console javascript de ton navigateur, tu dois avoir des erreurs à corriger.
Il manque notamment le paramètre event dans la fonction passée via addEventListener pour appeler preventDefault(). Généralement on utilise preventDefault() dès le début de la fonction pour annuler le comportement de base du bouton, ainsi pas besoin de rappeler cette instruction plusieurs fois :
A voir dans la console js si il y a d'autres erreurs à corriger.
Commence par regarder dans la console javascript de ton navigateur, tu dois avoir des erreurs à corriger.
Il manque notamment le paramètre event dans la fonction passée via addEventListener pour appeler preventDefault(). Généralement on utilise preventDefault() dès le début de la fonction pour annuler le comportement de base du bouton, ainsi pas besoin de rappeler cette instruction plusieurs fois :
buttonafficher.addEventListener('click', function(event) { event.preventDefault(); // on annule la gestion de base de l'event, pas besoin de réutiliser cette instruction dans la fonction // ... suite du code ...
A voir dans la console js si il y a d'autres erreurs à corriger.
metronome237
Messages postés
34
Date d'inscription
mercredi 11 août 2021
Statut
Membre
Dernière intervention
10 septembre 2021
7 sept. 2021 à 11:15
7 sept. 2021 à 11:15
bonjour
ma console n'a pas d'erreur mais je ne comprend pas ce qui se passe
ma console n'a pas d'erreur mais je ne comprend pas ce qui se passe
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
Modifié le 7 sept. 2021 à 12:09
Modifié le 7 sept. 2021 à 12:09
Dans ce cas le problème peut venir de la requête ajax. Est-ce que tu as une erreur (500, 404, ...) dans l'onglet Réseau dans les outils de développement du navigateur lorsque le requête ajax est envoyée ?
Si tu décommente la ligne
Si tu décommente la ligne
//alert(xhr.status);, est-ce que tu as un retour ?
metronome237
Messages postés
34
Date d'inscription
mercredi 11 août 2021
Statut
Membre
Dernière intervention
10 septembre 2021
7 sept. 2021 à 12:04
7 sept. 2021 à 12:04
non non tout passe il m'affiche 200 ok
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
Modifié le 7 sept. 2021 à 12:11
Modifié le 7 sept. 2021 à 12:11
D'après ton code, si la valeur de l'input "numero" est égale à "jfet025", les autres input sont alors remplis (ligne 15 à 20 de ton premier code) mais la requête ajax n'est pas envoyée puisque ton code s'arrête à l'instruction
Si tu as un retour 200 c'est que la requête ajax est bien passée, tu devrais donc voir ton résultat via l'instruction
return;à la ligne 21. Est-ce bien le comportement attendu ?
Si tu as un retour 200 c'est que la requête ajax est bien passée, tu devrais donc voir ton résultat via l'instruction
alert(res.dvteNum);?
metronome237
Messages postés
34
Date d'inscription
mercredi 11 août 2021
Statut
Membre
Dernière intervention
10 septembre 2021
7 sept. 2021 à 12:20
7 sept. 2021 à 12:20
oui lorsque je saisi jfet025 il renvoi les données replies en dur ça c'et la première partie
mais je voudrai que lorsque j'entre une autre valeur dans l'input "numero" il part lire dans la base de donnée et me renvoyer le resulta mais il ne le fais pas
mais je voudrai que lorsque j'entre une autre valeur dans l'input "numero" il part lire dans la base de donnée et me renvoyer le resulta mais il ne le fais pas
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
7 sept. 2021 à 12:26
7 sept. 2021 à 12:26
En testant un peu plus ton code, je viens de comprendre que le problème vient d'une erreur de syntaxe : la propriété
Ton code devrait mieux fonctionne avec cette correction.
xhr.readystaten'existe pas, il s'agit de
xhr.readyState(avec un S majuscule).
Ton code devrait mieux fonctionne avec cette correction.
metronome237
Messages postés
34
Date d'inscription
mercredi 11 août 2021
Statut
Membre
Dernière intervention
10 septembre 2021
7 sept. 2021 à 12:33
7 sept. 2021 à 12:33
je n'ai toujours aucun changement
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
Modifié le 7 sept. 2021 à 12:45
Modifié le 7 sept. 2021 à 12:45
Pas très précis comme retour. Le code de la fonction onreadystatechange est bien exécuté ? Des erreurs dans la console js ?
Un exemple : https://jsfiddle.net/c7z8xdhe/
N'ayant pas accès au fichier consulterfact.php, j'ai utilisé une autre API json en ligne pour faire un test.
Un exemple : https://jsfiddle.net/c7z8xdhe/
N'ayant pas accès au fichier consulterfact.php, j'ai utilisé une autre API json en ligne pour faire un test.
metronome237
Messages postés
34
Date d'inscription
mercredi 11 août 2021
Statut
Membre
Dernière intervention
10 septembre 2021
>
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
7 sept. 2021 à 13:04
7 sept. 2021 à 13:04
il n'arrive mème pas jusque là bas c'est mon véritable problème il n'exécute pas cette partie
metronome237
Messages postés
34
Date d'inscription
mercredi 11 août 2021
Statut
Membre
Dernière intervention
10 septembre 2021
7 sept. 2021 à 12:46
7 sept. 2021 à 12:46
le navigateur exécute la première partie du code mais il ne parvient pas à exécuter a suite du code pour lire les informations via le fichier consulterfactt là
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
7 sept. 2021 à 13:02
7 sept. 2021 à 13:02
Est-ce que la condition
Est-ce que tu vois la réponse de la requête dans la console ?
Toujours pas d'erreurs dans la console js ?
if(xhr.readyState == 4 && xhr.status == 200)est vrai lorsque tu exécute le code ?
Est-ce que tu vois la réponse de la requête dans la console ?
Toujours pas d'erreurs dans la console js ?
metronome237
Messages postés
34
Date d'inscription
mercredi 11 août 2021
Statut
Membre
Dernière intervention
10 septembre 2021
>
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
7 sept. 2021 à 13:09
7 sept. 2021 à 13:09
cette condition est vrai puisqu'il me renvoi 200 ok
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
>
metronome237
Messages postés
34
Date d'inscription
mercredi 11 août 2021
Statut
Membre
Dernière intervention
10 septembre 2021
7 sept. 2021 à 13:11
7 sept. 2021 à 13:11
Donc si tu affiches la réponse juste après tu devrais la voir dans la console ? Est-ce le cas ?
if(xhr.readyState == 4 && xhr.status == 200){ console.log(xhr.response);
metronome237
Messages postés
34
Date d'inscription
mercredi 11 août 2021
Statut
Membre
Dernière intervention
10 septembre 2021
>
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
7 sept. 2021 à 13:17
7 sept. 2021 à 13:17
XHRGEThttp://localhost/prospectvente/facture/consulterfact.php?numero=11BL1
[HTTP/1.1 200 OK 32ms]
voilà ce qui s'affiche dans la console lorsque je saisi quelque chose dans l'inpur "numero"
[HTTP/1.1 200 OK 32ms]
voilà ce qui s'affiche dans la console lorsque je saisi quelque chose dans l'inpur "numero"
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
>
metronome237
Messages postés
34
Date d'inscription
mercredi 11 août 2021
Statut
Membre
Dernière intervention
10 septembre 2021
7 sept. 2021 à 13:22
7 sept. 2021 à 13:22
Il ne s'agit pas de la réponse, as tu bien utilisé l'instruction
Est-ce que tu peux nous montrer ton code modifié sinon ?
console.log(xhr.response);?
Est-ce que tu peux nous montrer ton code modifié sinon ?
metronome237
Messages postés
34
Date d'inscription
mercredi 11 août 2021
Statut
Membre
Dernière intervention
10 septembre 2021
10 sept. 2021 à 10:08
10 sept. 2021 à 10:08
bonjour désolé pour l'absence mais rien ne s'affiche toujours mais j'ai une erreur dans la conole voici l'erreur:
Uncaught ReferenceError: res is not defined
at XMLHttpRequest.xhr.onreadystatechange ((index):99)
(index):70 Numéro : 11BL1
(index):92 Send XHR
(index):95 State : 2 Status : 200
(index):95 State : 3 Status : 200
(index):95 State : 4 Status : 200
(index):98 null
Uncaught ReferenceError: res is not defined
at XMLHttpRequest.xhr.onreadystatechange ((index):99)
voilà les 2 erreurs
Uncaught ReferenceError: res is not defined
at XMLHttpRequest.xhr.onreadystatechange ((index):99)
(index):70 Numéro : 11BL1
(index):92 Send XHR
(index):95 State : 2 Status : 200
(index):95 State : 3 Status : 200
(index):95 State : 4 Status : 200
(index):98 null
Uncaught ReferenceError: res is not defined
at XMLHttpRequest.xhr.onreadystatechange ((index):99)
voilà les 2 erreurs
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
10 sept. 2021 à 12:58
10 sept. 2021 à 12:58
Bonjour,
Bonne nouvelle si tu as des messages d'erreurs, même si ca ne fonctionne pas encore on devrait désormais savoir pourquoi.
D'après le message d'erreur, à la ligne 99, tu essayes d'utiliser la variable res alors que celle-ci n'a pas été déclarée (elle n'est pas initialisée).
Si tu ne vois pas comment corriger l'erreur, peux-tu nous montrer la dernière version de ton code complet stp ?
Bonne nouvelle si tu as des messages d'erreurs, même si ca ne fonctionne pas encore on devrait désormais savoir pourquoi.
D'après le message d'erreur, à la ligne 99, tu essayes d'utiliser la variable res alors que celle-ci n'a pas été déclarée (elle n'est pas initialisée).
Si tu ne vois pas comment corriger l'erreur, peux-tu nous montrer la dernière version de ton code complet stp ?
metronome237
Messages postés
34
Date d'inscription
mercredi 11 août 2021
Statut
Membre
Dernière intervention
10 septembre 2021
>
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
10 sept. 2021 à 13:10
10 sept. 2021 à 13:10
var element = document.getElementById("numero"); var buttonafficher = document.getElementById("submit"); alert(numero); buttonafficher.addEventListener('click', function(event){ event.preventDefault(); var numfactsaisie = document.getElementById("numero").value; console.log('Numéro : ' + numfactsaisie); if(numfactsaisie == ""){ alert("veuillez remplir ce champ"); return; } if(numfactsaisie == "jfet025"){ document.getElementById("numero").value="jfet025"; document.getElementById("text").value="20/08/21"; document.getElementById("text1").value="jfet compagny"; document.getElementById("montant").value="2.000.000"; document.getElementById("etat").value="livrer"; return; } //--------lire les infos via le fichier consulterfact.php et affiche var xhr= new XMLHttpRequest(); xhr.open("GET","/prospectvente/facture/consulterfact.php?numero="+numfactsaisie, true); xhr.responseType = "json"; xhr.send(); console.log('Send XHR'); xhr.onreadystatechange = function(){ console.log('State: '+xhr.readyState+ ' Status : '+xhr.status); if(xhr.readyState == 4 && xhr.status == 200){ console.log(xhr.response); alert(res.dvteNum); document.getElementById("numero").value=res.dvteNum; document.getElementById("text").value=res.dvteDtEnreg; document.getElementById("text1").value=res.dvteNomClient; document.getElementById("montant").value=res.dvtemtTTC; }else{ } }; });
voici la dernière version
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
>
metronome237
Messages postés
34
Date d'inscription
mercredi 11 août 2021
Statut
Membre
Dernière intervention
10 septembre 2021
10 sept. 2021 à 17:41
10 sept. 2021 à 17:41
En effet suite aux différentes version de test, la variable res n'est plus initialisée sur la dernière version.
Tu peux essayer avec cette correction :
J'ai ajouté la ligne
Tu peux contrôler si les données récupérées sont correctes dans la console juste après le message "Response :".
Si cette récupération ne fonctionne pas correctement, tu peux essayer de remplacer cette ligne par celle en commentaire juste dessous qui utilise JSON.parse() mais comme indiqué dans un précédent message, tu ne devrais en théorie pas avoir besoin d'utiliser JSON.parse() car le responseType est déjà défini en json.
Tu peux essayer avec cette correction :
var element = document.getElementById("numero"); var buttonafficher = document.getElementById("submit"); buttonafficher.addEventListener('click', function(event){ event.preventDefault(); var numfactsaisie = document.getElementById("numero").value; console.log('Numéro : ' + numfactsaisie); if(numfactsaisie == ""){ alert("veuillez remplir ce champ"); return; } if(numfactsaisie == "jfet025"){ document.getElementById("numero").value="jfet025"; document.getElementById("text").value="20/08/21"; document.getElementById("text1").value="jfet compagny"; document.getElementById("montant").value="2.000.000"; document.getElementById("etat").value="livrer"; return; } //--------lire les infos via le fichier consulterfact.php et affiche var xhr= new XMLHttpRequest(); xhr.open("GET","/prospectvente/facture/consulterfact.php?numero="+numfactsaisie, true); xhr.responseType = "json"; xhr.send(); console.log('Send XHR'); xhr.onreadystatechange = function(){ console.log('State: ' + xhr.readyState + ' Status : ' + xhr.status); if(xhr.readyState == 4 && xhr.status == 200){ var res = xhr.response; // var res = JSON.parse(xhr.response); console.log('Response : '); console.log(res); document.getElementById("numero").value = res.dvteNum; document.getElementById("text").value = res.dvteDtEnreg; document.getElementById("text1").value = res.dvteNomClient; document.getElementById("montant").value = res.dvtemtTTC; } }; });
J'ai ajouté la ligne
var res = xhr.response;pour récupérer le réponse de la requête ajax dans la variable res.
Tu peux contrôler si les données récupérées sont correctes dans la console juste après le message "Response :".
Si cette récupération ne fonctionne pas correctement, tu peux essayer de remplacer cette ligne par celle en commentaire juste dessous qui utilise JSON.parse() mais comme indiqué dans un précédent message, tu ne devrais en théorie pas avoir besoin d'utiliser JSON.parse() car le responseType est déjà défini en json.
metronome237
Messages postés
34
Date d'inscription
mercredi 11 août 2021
Statut
Membre
Dernière intervention
10 septembre 2021
>
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
10 sept. 2021 à 18:00
10 sept. 2021 à 18:00
(index):74 Numéro:11BAC
(index):97 Send XHR
Voilà ce que ça me renvoi comme erreur dans la console
(index):97 Send XHR
Voilà ce que ça me renvoi comme erreur dans la console
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
>
metronome237
Messages postés
34
Date d'inscription
mercredi 11 août 2021
Statut
Membre
Dernière intervention
10 septembre 2021
Modifié le 10 sept. 2021 à 18:21
Modifié le 10 sept. 2021 à 18:21
A priori la requête est envoyée puisqu'on arrive à la ligne console.log('Send XHR'); mais la fonction onreadystatechange n'est pas appelée car on ne voit plus les logs "State" et "Status" comme ton précédent test.
Pas d'autres messages dans la console ?
Est-ce que tu vois la requête ajax dans l'onglet Réseau à coté de l'onglet Console ?
Le serveur php est bien démarré (la page consulterfact.php fonctionne) ?
Pas d'autres messages dans la console ?
Est-ce que tu vois la requête ajax dans l'onglet Réseau à coté de l'onglet Console ?
Le serveur php est bien démarré (la page consulterfact.php fonctionne) ?