Gestionnaire de contact : problème.

Fermé
codeurJSenherbe Messages postés 4 Date d'inscription samedi 17 août 2019 Statut Membre Dernière intervention 17 août 2019 - 17 août 2019 à 21:27
 f29retaliator - 17 août 2019 à 22:30
Bonjour à tout le monde ! Je débute dans le codage en JS et j'aimerais quelque conseil :
J'ai commencé a apprendre sur Openclassroom, a la fin du cours il te donne une activité. Celle ci consiste a créer un gestionnaire de contact fonctionnant ainsi :
- A l'ouverture de la page html lié au code JS, il écrit :
"bienvenue dans le gestionnaire de contact !
1: ouvrir le gestionnaire de contact
2: créer un nouveau contact
0: quitter"
ainsi qu'une fenêtre demandant "Que voulez vous faire ?".
- Si on écrit 1 s'affiche :
"voici le gestionnaire de contact:

vous avez 2 contact :

nom : Levisse, prénom : Carole
nom : Nelsonne, prénom : Melodie

1: ouvrir le gestionnaire de contact
2: créer un nouveau contact
0: quitter"
Puis une nouvelle fenêtre "Que voulez faire ?".
-Si on écrit 2, une fenêtre s'ouvre demandant "Quel est le nom de votre nouveau contact ?". Puis une autre fenêtre demandant "quel est le prénom de votre nouveau contact". Puis sur la page s'affiche "le contact a bien été ajouté" (et a nouveau une fenêtre demandant ce que je veux faire).
- Alors, si on réécrit 1, le nom et prénom du nouveau contact s'affiche avec les deux autres et demande encore ce que l'utilisateur veut faire.
- Finalement, si on écrit 0, s'affiche seulement "au revoir !" et la boucle est bouclée.


Je vais sans doute rencontrer beaucoup de problème d'ici l'accomplissement du projet, mais je poserai les question une par une.

voici pour le moment mes ligne de code

Html :
<!doctype html>
<html>

<head>
    <meta charset="utf-8">
    <title>Gestion des contacts</title>
</head>

<body>
<span>bienvenue dans le gestionnaire de contact ! <br /><br />
1: ouvrir le gestionnaire de contact <br />
2: creer un nouveau contact <br />
0: quitter <br /></span>
    <script src="../js/contacts.js"></script>
</body>

</html>


JS :
class Contact {
  constructor(nom,prenom) {
    this.nom = nom;
    this.prenom = prenom;
  }
  decrire() {
    return `nom : ${this.nom}, prenom : ${this.prenom}`;
  }
}

function proposerChoix() {
document.write("<br />1: ouvrir le gestionnaire de contact <br />");
document.write("2: creer un nouveau contact <br />");
document.write("0: quitter <br />");
choix = prompt("et maintenant?");
}

function ouvrirContact(){
document.write(`vous avez ${stockContacts.length} contact : <br /><br />`)
for(let i = 0; i < stockContacts.length; i++) {
   document.write(stockContacts[i].decrire()+"<br />");
}
proposerChoix();
}

function creerContact(){
const newNom = prompt("quel est le nom de votre contact ?")
const newPrenom = prompt("quel est le prenom de votre contact?")
};

function quitter(){

};
let choix = prompt("que voulez vous faire ?");
const Carole = new Contact("Levisse","Carole");
const Melodie = new Contact("Nelsonne","Melodie");
const stockContacts = [Carole,Melodie];
switch(choix) {
  case "1" : 
    document.write("<br />voici le gestionnaire de contact:<br /><br />");
    ouvrirContact();
  break;
  case "2" :
    creerContact();
  break;
  case "0" :
   quitter();
  break;
}


Première question : Lorsque je marque 1, les deux fenêtres s'affiche a la suite et sans rien afficher sur la page html. Comment faire pour attendre d'afficher les contacts avant de lancer l'autre fenêtre ?

Merci d'avance !

1 réponse

f29retaliator
17 août 2019 à 22:30
Salut,
si vous bloquez en apprenant le mieux n'est il pas de revoir le cours?
Ensuite ne vous limitez pas à seulement Open Class Room qui ont aussi des cours qui sont médiocres.
Allez voir d'autre sites plus pointus, mieux expliqués ou qui conviennent mieux à votre méthode de travail, trouvez un bon bouquin ou pdf etc...

Par exemple ici je voit l'utilisation de document.write qui est absolument à éviter
+ la présence du mot clé "class" ce qui n'est pas vraiment justifié en première partie d'apprentissage.

Une des bases de toutes les programmation est de considérer a nature des données. Ce qui ne semble pas être fait dans votre switch:

considérez l différence entre
var uneValeur="1";
et
var uneAutreValeur=1;

Sans un minimum des bases du langage (et de sa compréhension) ne cherchez pas à aller plus loin, vous ne faites qu'accumuler des erreurs et emmagasiner des connaissances floues ou erronées ce qui est pire que rien apprendre.

parce que résoudre les exercices pour vous :
_ça vous apprendra rien
_on n'a pas que ça à faire de devoir devenir un intitulé et corriger votre script
1