Besoin d'une petite explication pour les getElementById svp

Résolu/Fermé
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 - Modifié le 14 janv. 2022 à 11:23
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 - 14 janv. 2022 à 13:06
bonjour a tous
je pense avoir compris le principe des getElementById

avec ce lien
https://www.w3schools.com/js/tryit.asp?filename=tryjs_output_dom

mais cela ne semble pas fonctionner chez moi

pour rappel j'ai donc un formulaire html et une page panier.js

je souhaiterais afficher sur ma page de formulaire certaines données
je pensais avoir réussi mais je m aperçois que cela entre en conflit des fois
donc autant bien faire les choses et surtout les comprendre

alors pour commencer dans mon fichier panier.js
j'ai repérer cette ligne

document.getElementById('livraison-detail').innerHTML = "<div class='row' style ='margin-bottom:5px;'><div class='col'></div><div class='col'style='text-align:center;background-color: #78b8df;'>Livraison </div><div class='col ' style='text-align:center;background-color: #78b8df;'>Méthode</div><div class='col' style='text-align:center;background-color: #78b8df;'> (" + nom_choix_livraison + ") </div><div class='col' style='text-align:center;background-color: #78b8df;'> " + prix_choix_livraison +" euro(s)</div></div>";


et je parviens a la récupérée de cette façon sur ma page du formulaire

<i id="livraison-detail"></i>

jusque la tout va bien même si je me demande pourquoi il y a un "i" devant l id
c est vrai que j aurais pu mettre un p et un </p>

donc d après ce que je peux comprendre cela est suffisant pour transmettre les données du panier vers le formulaire ?

une autre question
je vois aussi
un div avec id écrit de cette manière dans le code source sur lequel je m'inspire pour créer mon panier

<div>*Prix total: <b><span class="total-panier" id="prix_total">9.00</span> euros</b></div>
mais dans le panier.js je ne vois pas de document.getElementById('total-panier')
le seul endroit ou ce total-panier est visible c'est dans le code javascript ci dessous

Alors j'ai une troisième question cette partie ne concerne bien que pour le traitement des données et l envois des données par mail ?
<script>
function commander(nom,prenom,cp,email,commande,prix_total,message,ville,detail_livraison){
$.ajax({
url : 'mail.php',
type : 'GET', 
data : 'nom=' + nom + '&prenom=' + prenom + '&cp=' + cp + '&email=' + email + '&commande=' + commande + '&prix_total=' + prix_total + '&message=' + message + '&ville=' + ville + '&livraison=' + detail_livraison, 
dataType : 'html',
success : function(reponse){
if (reponse == "1"){
 MonPanier.clearpanier();
 afficherpanier(); 
 document.body.scrollTop = 0;
 document.documentElement.scrollTop = 0;
 $('#mymodal').modal('show'); 
}
if (reponse == "0"){$('#mymodal_erreur').modal('show');}
}
});
}
$('#commander').click( function(){
var nom = document.getElementById("nom").value;
var prenom = document.getElementById("prenom").value;
var cp = document.getElementById("cp").value;
var ville = document.getElementById("ville").value;
var email = document.getElementById("email").value;
var commande = JSON.stringify(panier);
var detail_livraison = document.getElementById("livraison-detail").innerHTML;
var prix_total = document.getElementById("prix_total").innerHTML;
var message = encodeURIComponent(document.getElementById("message").value);
commander(nom,prenom,cp,email,commande,prix_total,message,ville,detail_livraison);
});
</script>

5 réponses

yg_be Messages postés 23316 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 8 novembre 2024 Ambassadeur 1 552
14 janv. 2022 à 12:09
bonjour,
si ta première question est "cela est suffisant pour transmettre les données du panier vers le formulaire", je pense que oui.

dans ta deuxième question, je vois un mélange bizarre de "total-panier"et de "prix_total".

pour ta troisième question, ce code appelle la page mail.php de ton site.
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
14 janv. 2022 à 12:16
bonjour
Merci pour les réponses
mais je n'ai pas trop bien compris la réponse pour la deuxième questions

dans ta deuxième question, je vois un mélange bizarre de "total-panier"et de "prix_total".
0
yg_be Messages postés 23316 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 8 novembre 2024 1 552
14 janv. 2022 à 12:28
N'est-ce pas ceci ta deuxième question?
<div>*Prix total: <b><span class="total-panier" id="prix_total">9.00</span> euros</b></div>
mais dans le panier.js je ne vois pas de document.getElementById('total-panier')
1
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187 > yg_be Messages postés 23316 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 8 novembre 2024
14 janv. 2022 à 12:32
oui en effet pour avoir un id qui me donne un résultat je devrais retrouver quelque part un document.getElementById('total-panier')
0
yg_be Messages postés 23316 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 8 novembre 2024 1 552 > flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024
14 janv. 2022 à 12:39
Ce qui confirme que tu mélanges.
Quel id vois-tu dans le code?
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
14 janv. 2022 à 12:27
y a quand meme un truc qui m'échappe

pourquoi ce code m'affiche bien le nombre d article dans mon panier
  <div class="col-md-12 mt-3" style="padding-left: 5px;padding-right: 5px;background-color: beige;">
                  Nombre de produit(s) dans le panier : <i id="countart_haut"></i> </div>


alors que celui ci non
 <i id="countart_haut"></i>
0
yg_be Messages postés 23316 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 8 novembre 2024 1 552
14 janv. 2022 à 12:37
Pris isolément, aucun de ces codes n'affiche aucun nombre.
Tu ne donnes aucun contexte.
Si ces deux éléments sont présents dans la même page, penses-tu que c'est une bonne idée de leur donner la même identité?
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
14 janv. 2022 à 12:47
merci pour l aide

non en arrière plan il y a un calcul qui est est fait sur la page panier.js et j'ai verifier avec la console.log

donc c'est sur et certain que cela retourne quelque chose sur la page panier.js

non c 'est juste pour l essai je ne mets pas les deux en même temps (chaque id est unique )
Mais je voulais comprendre pourquoi lorsque je mets le premier j'ai un résultat et pas quand je le remplace par le code du deuxième

mais je pense que j'ai compris
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
14 janv. 2022 à 13:06
misère ces espaces , il n en faut pas , il faut faire très attention , voila pourquoi cela ne fonctionnait pas
grrrrrrr
0