[JAVASCRIPT HTML] javascript appelant du html
Résolu/Fermé
shoezman13
Messages postés
15
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
18 juin 2008
-
28 mai 2008 à 11:03
shoezman13 Messages postés 15 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 18 juin 2008 - 28 mai 2008 à 14:45
shoezman13 Messages postés 15 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 18 juin 2008 - 28 mai 2008 à 14:45
A voir également:
- [JAVASCRIPT HTML] javascript appelant du html
- Telecharger javascript - Télécharger - Langages
- Editeur html - Télécharger - HTML
- Espace en html - Astuces et Solutions
- &Nbsp html - Forum HTML
- Br html - Forum HTML
2 réponses
GallyNet
Messages postés
434
Date d'inscription
mardi 1 juin 2004
Statut
Membre
Dernière intervention
15 décembre 2008
387
28 mai 2008 à 11:42
28 mai 2008 à 11:42
C'est tout à fait possible à faire. Et même de 3 manière différentes :
- La première consiste à créer le code HTML (comme tu le fait en PHP), et de le mettre directement dans l'objet SELECT.
- La deuxième consiste à créer directement les objets OPTIONS avec les fonctions fournit par Javascript
- La troisème consiste à créer directement le DOM du SELECT
Dans ton template, dans tout les cas :
- Première méthode :
- Deuxième méthode :
- Troisième méthode
Je te garanti pas que cela marche directement (j'ai pas tester ce que j'ai écrit), mais les différent principes sont là.
- La première consiste à créer le code HTML (comme tu le fait en PHP), et de le mettre directement dans l'objet SELECT.
- La deuxième consiste à créer directement les objets OPTIONS avec les fonctions fournit par Javascript
- La troisème consiste à créer directement le DOM du SELECT
Dans ton template, dans tout les cas :
<select autocomplete="off" name="date_n_Day" id="date_n_day">
- Première méthode :
/* Initialisation du contenu */ var content = '<option value="">Jour :</option>'; /* Boucle pour créer les différentes options du SELECT */ for(var i = 1; i < 32; i++){ content += '<option value="' + i + '">' + $i + '</option>'); } /* Récupération du SELECT (il faut bien que son identifiant soit unique) */ var select = document.getElementsById('date_n_day'); /* On remplace tout le contenu du SELECT par celui que l'on a créé (comme il etait vide, il n'y a pas de problème) */ select.innerHTML = content;
- Deuxième méthode :
/* Récupération du SELECT (il faut bien que son identifiant soit unique) */ var select = document.getElementsById('date_n_day'); /* Création et insertion de la première option * new Option('Texte à afficher', 'value') */ select.options[0] = new Option('Jours', ''); /* Boucle pour créer les différentes options du SELECT */ for(var i = 1; i < 32; i++){ select.options[i] = new Option(i, i); }
- Troisième méthode
/* Récupération du SELECT (il faut bien que son identifiant soit unique) */ var select = document.getElementsById('date_n_day'); /* Création de la première option */ var option = document.createElement('option'); /* Mise à jours du text à afficher */ option.innerHTML = 'Jours'; /* La valeurs et vide */ option.value = ''; /* Ajout de l'option au SELECT */ select.appendChild(option); /* Boucle pour créer les différentes options du SELECT */ for(var i = 1; i < 32; i++){ var option = document.createElement('option'); option.innerHTML = i; option.value = i; select.appendChild(option); }
Je te garanti pas que cela marche directement (j'ai pas tester ce que j'ai écrit), mais les différent principes sont là.
GallyNet
Messages postés
434
Date d'inscription
mardi 1 juin 2004
Statut
Membre
Dernière intervention
15 décembre 2008
387
28 mai 2008 à 14:08
28 mai 2008 à 14:08
select has no properties
En gros, ça veut dire que le document.getElementById() n'a rien retourné. Cela peut venir de plusieurs chose :
- il n'existe pas d'élement avec l'id fournit
- le script est exécuté avant que l'objet apparaisse
- ou alors, vu que j'ai fait une grosse boulette dans ce que j'ai écrit, ça peut être normal que ca marche pas. J'ai mis un "s" à getElementById().
EDIT : a part ce problèmes de "s" en trops, seul la première méthode que je t'ai donné contient des erreurs. Voila le code corrigé :
var content = '<option value="">Jour :</option>'; /* Boucle pour créer les différentes options du SELECT */ for(var i = 1; i < 32; i++){ content += '<option value="' + i + '">' + i + '</option>'; } /* Récupération du SELECT (il faut bien que son identifiant soit unique) */ var select = document.getElementById('date_n_day'); /* On remplace tout le contenu du SELECT par celui que l'on a créé (comme il etait vide, il n'y a pas de problème) */ select.innerHTML = content;
Les erreurs été surtout sur cette ligne:
content += '<option value="' + i + '">' + $i + '</option>');
$i n'existe pas, et j'ai une parenthese qui traine à la fin.
(Pour les deux autres méthode, il faut bien penser à enlever le "s" que j'ai mis en trop)
shoezman13
Messages postés
15
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
18 juin 2008
1
28 mai 2008 à 14:45
28 mai 2008 à 14:45
ça y est ça marche impec!!! Pour les "s" en trop j'avais vu ça parce que j'ai essayé de comprendre ton code quand meme ça pouvait toujours servir alors j'ai pu voir que la fonction document.getElementById() est vraiment casse couille avec sa jumelle document.getElementsByName() ... ils sont pas capable de mettre la même orthographe? lool
Bon sinon après avoir modifié ce dont tu m'as parlé, j'ai remarqué que j'avais eu des problèmes de majuscule dans mes ID...
alala vive la programmation :P
En tout cas merci beaucoup, maintenant mon php m'attend pour récupérer tout ça^^
A bientot
Bon sinon après avoir modifié ce dont tu m'as parlé, j'ai remarqué que j'avais eu des problèmes de majuscule dans mes ID...
alala vive la programmation :P
En tout cas merci beaucoup, maintenant mon php m'attend pour récupérer tout ça^^
A bientot
28 mai 2008 à 13:59
J'ai pu essayer tout ça, ça marchait pas du tout avant que je comprenne que j'avais oublié les balises {literal} :P
Sinon maintenant j'ai mes 3 menus déroulants (jours, mois, années) mais ils sont vides... j'ai beau essayer de changer des petits trucs par ci par là ça change rien... alors je vais replonger dessus mais si tu as une idée tu problème je reste à l'écoute.
(au fait pour bien tester le programme j'ai mis une méthode différente pour chaque menu et ils sont tous vides...)
PS: dans la console de firebug j'obtiens ça :
select has no properties
[Break on this error] select.options[0] = new Option("Jours", "");