JS petit soucis d'adaptation de fonction

Résolu/Fermé
marcelo44 Messages postés 323 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 3 avril 2023 - 30 juin 2010 à 11:22
marcelo44 Messages postés 323 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 3 avril 2023 - 2 juil. 2010 à 10:57
Bonjour,
Alors voilà j'ai une fonction qui me permet de modifier une image d'un bouton que je veux simplifier mais il y a un hic :

var tab_bouton = Array('bouton_gommer','bouton_continuer','bouton_arreter');
var tab_chemin = Array('/0002.jpg','/0008.jpg','/0010.jpg');
var tab_chemin2 = Array('/0001.jpg','/0007.jpg','/0009.jpg');

function change_image(nom,href_image)
{
document.images[nom].src=href_image;
}

function theme(num)
{
for(var j=0; j<3; j++) //NE MARCHE PAS -> Erreur : document.images[nom] is undefined
{
document.getElementById("img"+j).onmousedown= function(){change_image(tab_bouton[j],'./theme/'+num+tab_chemin[j])};
document.getElementById("img"+j).onmouseout= function() {change_image(tab_bouton[j],'./theme/'+num+tab_chemin2[j])};
}
// MARCHE BIEN C'EST SA QUE JE VEUX REMPLACER PAR LE FOR AU DESSUS
document.getElementById("img0").onmousedown= function(){change_image('bouton_gommer','./theme/'+num+'/0002.jpg')};
document.getElementById("img0").onmouseout= function(){change_image('bouton_gommer','./theme/'+num+'/0001.jpg')};
document.getElementById("img1").onmousedown= function(){change_image('bouton_continuer','./theme/'+num+'/0008.jpg')};
document.getElementById("img1").onmouseout= function(){change_image('bouton_continuer','./theme/'+num+'/0007.jpg')};
document.getElementById("img2").onmousedown= function(){change_image('bouton_arreter','./theme/'+num+'/0010.jpg')};
document.getElementById("img2").onmouseout= function() {change_image('bouton_arreter','./theme/'+num+'/0009.jpg')};

Une idée? Merci.

12 réponses

marcelo44 Messages postés 323 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 3 avril 2023 13
30 juin 2010 à 12:38
je pense que sa vient du fait que je remplace la chaine de caractère par un tableau ? si quelqu'un à une solution merci
0
marcelo44 Messages postés 323 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 3 avril 2023 13
1 juil. 2010 à 10:22
Personne ???
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
1 juil. 2010 à 10:57
montre ton html
0
marcelo44 Messages postés 323 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 3 avril 2023 13
Modifié par marcelo44 le 1/07/2010 à 16:13
voilà mon html des boutons :
<td align=center>
<a href=javascript:document.formulaires.reset() id='img0'
onmousedown="change_image('bouton_gommer','./theme/1/0002.jpg');"
onmouseout="change_image('bouton_gommer','./theme/1/0001.jpg');">
<img id='image0' name='bouton_gommer' type="image" src="./theme/1/0001.jpg" border="0">
</a>
<a href=javascript:verifier() id='img1'
onmousedown="change_image('bouton_continuer','./theme/1/0008.jpg');"
onmouseout="change_image('bouton_continuer','./theme/1/0007.jpg');">
<img id='image1' name='bouton_continuer' type="image" src="./theme/1/0007.jpg" border="0" >
</a>
<a href=javascript:arreter() id='img2'
onmousedown="change_image('bouton_arreter','./theme/1/0010.jpg');"
onmouseout="change_image('bouton_arreter','./theme/1/0009.jpg');">
<img id='image2' name='bouton_arreter' type="image" src="./theme/1/0009.jpg" border="0">
</a>
</td>

j'utilise la fonction pour changer de thème plus précisément, aucun problème avec la fonction détaillée, mais pas celle réduite grâce au for

en plus voilà comment je change mon body et mes balise <img> (sa fonctionne)
var a = "";
a += document.getElementById("body").background;
var chemin2 = "";
chemin2 = a.substring(30,40) ;
document.getElementById("body").background='./theme/'+num+chemin2;

for(var i=0; i<3; i++)
{
var c = "";
var chemin = "";
c = document.getElementById("image"+i).src ;
//alert(c);
chemin = c.substring(30,40) ;
//alert(chemin);
document.getElementById('image'+i).src='./theme/'+num+chemin;
}
0

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

Posez votre question
marcelo44 Messages postés 323 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 3 avril 2023 13
2 juil. 2010 à 09:33
bon ba soit c'est un truc tout bête ou alors personne ne passe sur mon sujet :'(
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
2 juil. 2010 à 09:54
pourquoi tu le fais pas en css ?

avec la propriété hover
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
Modifié par maka54 le 2/07/2010 à 09:59
<a href="javascript:void(0);" > 
     <span id="img_arreter"></span> 
</a>  


le css :

#img_arreter{background-image:url("../theme/1/0009.jpg");} 
#img_arreter:hover{background-image:url("../theme/1/0010.jpg");}


.
0
marcelo44 Messages postés 323 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 3 avril 2023 13
Modifié par marcelo44 le 2/07/2010 à 10:06
Mon problème est qu'il y a un formulaire et à coter plusieurs thèmes au choix, si l'utilisateur remplis les champs puis choisis son thème il faut les garder remplis donc je me suis tourné vers le JS.
Par le css je ne vois pas comment lui envoyer le thème et à vrai dire je m'y suis pas encore mis au css ^^ ce qu'il faudrait que je fasse...
Même si il y a une solution plus simple j'aimerais savoir si quelqu'un à une idée du pourquoi sa ne marche pas?
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
2 juil. 2010 à 10:13
c'est enregistrer dans une base de données ce choix de thème ?

qu'est ce que tu veux faire exactement ?
0
marcelo44 Messages postés 323 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 3 avril 2023 13
Modifié par marcelo44 le 2/07/2010 à 10:36
Alors attention les explications commence ce que j'aurais du faire dès le début :
c'est une page d'inscription l'utilisateur rentre son nom et mot de passe puis confirmation du mot de passe date... sur le coter de la page il y a un bouton thème lors d'un clic 5 images de thème apparaisse sans enlever les champs remplis ensuite l'utilisateur choisi son thème et les image change instantanément (background du body, bouton,...) et pour finir lors de l'envoi du formulaire je passe par un fichier qui vérifie que le nom d'utilisateur n'est pas utilisé dans la base de donnée, que la confirmation du mot de passe est bonne,... et enregistre toute les informations dans cette base de donnée dont le thème pour quand il se connecte voilà
EDIT : Donc ici mon seul problème est de simplifier ma fonction grâce à un for et des tableaux qui contiennent les différents chemin et noms des images
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
2 juil. 2010 à 10:51
alors déjà, je serais toi, j'inscrirais la personne, et lorsqu'il se connecte (pour la premiere fois) , tu lui propose de changer le theme, ensuite, je créerais un fichier css par theme que tu appelles en debut de page en fonction de son choix

c'est le merdier ce que tu fais, tu ecrit tout en dur, le jour ou tu voudras rajouter un thème, tu t'en mordras les doigts,
alors qu'avec du css, tu feras un copier/coller, tu changes tes url et le nom du fichier est c'est réglé ...
0
marcelo44 Messages postés 323 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 3 avril 2023 13
2 juil. 2010 à 10:57
Oui c'est bien vrai ^^ j'ai encore un peu de mal (en stage c'est mon dernier jour d'ailleurs) bon je vais me rabattre sur ta solution alors et merci de ton aide ! pour moi c'est resolu.
0