Une boucle for javascript
Résolu
new-dev
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
J'ai un code javascript qui calcule le tarif d'un billet en fonction de 3 champs select Symfony.
J'ai dû ajouter un CollectionType à mon formulaire, du coup à chaque ajout de nouveau champ date de naissance, les id deviennent :
etc. Du coup mon code ne fonctionne que pour le premier formulaire. À mon avis je dois tout mettre mon code à la poubelle et faire autrement ? ou est-ce qu'il y a moyen de retoucher le code javascript facilement ? Merci
$(document).ready(function() {
$('.well').change(function () {
var jour_n = document.getElementById('commande_billet_billet_0_dateNaissance_day').value;
var mois_n = document.getElementById('commande_billet_billet_0_dateNaissance_month').value;
var annee_n =document.getElementById('commande_billet_billet_0_dateNaissance_year').value;
var date_day = new Date();
jour_ojd = date_day.getDate();
mois_ojd = date_day.getMonth();
annee_ojd = date_day.getFullYear();
if ((mois_n < mois_ojd) || ((mois_n == mois_ojd && jour_n <= jour_ojd))) {
age = (annee_ojd++) - (annee_n);
}
else if (mois_n >= mois_ojd && (jour_n > jour_ojd)) {
age = (annee_ojd - 1) - (annee_n);
}
else {
age = annee_ojd - annee_n;
}
if (age < 8 ) {
document.getElementById('prix').innerHTML = 'Billet gratuit';
document.getElementById('commande_billet_billet_0_prix').value = 0;
//HiddenType
}
// reste de mon code javascript
J'ai dû ajouter un CollectionType à mon formulaire, du coup à chaque ajout de nouveau champ date de naissance, les id deviennent :
commande_billet_billet_1_dateNaissance_day
commande_billet_billet_1_dateNaissance_month
commande_billet_billet_1_dateNaissance_year
commande_billet_billet_2_dateNaissance_day
commande_billet_billet_2_dateNaissance_month
commande_billet_billet_2_dateNaissance_year
etc. Du coup mon code ne fonctionne que pour le premier formulaire. À mon avis je dois tout mettre mon code à la poubelle et faire autrement ? ou est-ce qu'il y a moyen de retoucher le code javascript facilement ? Merci
A voir également:
- Une boucle for javascript
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Telecharger javascript - Télécharger - Langages
- Idm for mac - Télécharger - Téléchargement & Transfert
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Instagram for pc - Télécharger - Divers Communication
http://www.hostingpics.net/viewer.php?id=214437aide.png
http://www.hostingpics.net/viewer.php?id=851391aide2.png
Sur l'image, j'ai sélectionner le premier billet, à chaque fois qu'un utilisateur cliquera sur le bouton "Billet supplémentaire", tous les id vont changer, par exemple :
deviendra :
À chaque fois le compteur s'incrémentera de 1, sur tous les id. Du coup comme tu peux le voir sur l'image, l'affichage du prix dynamique du billet ne fonctionnera que pour le premier formulaire.
L'input hidden correspond à un champ cacher qui affiche le prix,il est prérempli en fonction de la date de naissance.
J'espère être plus clair. À mon avis ça va être compliqué à gérer ?
Merci :)
Te serais tu possible de nous mettre à disposition le code correspondant à ta question ? (ou alors que tu reformules mieux que ça ta question... car là .. je ne vais rien pouvoir faire pour toi si tu ne fais aucun effort )
Mais la prochaine fois tu le colles avant dans ton bloc-notes et tu fais des retours à la ligne histoire qu'il soit plus lisible.
Concernant ta class "well" ... elle n'est présente qu'à un seul endroit :
Donc ... NON .. ce n'est pas la CLASS de tes listes déroulantes !
Pour essayer de faire ce que tu veux... tu vas devoir ajouter une class (même fictive peu importe...) à tes "select"
par exemple :
(et ce.. sur TOUTES les listes sur lesquelles tu veux boucler par la suite ! )
Puis, comme dans la précédente conversation .. faire un truc du genre ;:
Voila..; Tu n'auras sûrement pas mieux (ni plus simple)
donc en mettant :
ça devrait marcher ? je vais essayer, merci