Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/03/2011, 16h18   #1
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 81
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2007
Messages : 81
Points : 11
Points : 11
Par défaut PHP + Javascript (showHide d'une div)

Bonjour,

je rencontre quelques soucis pour afficher et masquer mes div. J'ai trouvé aucun post pour le problème que je rencontre. Je vous explique

Mon code javascript
Code :
1
2
3
4
5
6
7
8
9
10
 
function showHide(divId)
{
    if (document.getElementById(divId).style.display=="none")) {
        document.getElementById(divId).style.display="inline";
    }
    else {
        document.getElementById(divId).style.display="none";
    }
}
Mon code PHP
Code :
1
2
3
4
5
 
for($i=0; $i<10; $i++) {
    echo '<button type="button" onclick="showHide('maDiv')">bouton</button>';
     echo '<div id="maDiv">Mon text</div>';
}
et mon css
Code :
1
2
 
#maDiv { display: none;}
Le problème avec ce code est qu'il prend pas en compte les différents bouton et différente div. Typiquement, quand je vais cliquer sur un des bouton (différent du 1er), il va m'afficher la div du 1er.

Ce qu'il faudrait, c'est attribuer à chaques div dans la boucle, un id différent mais je ne vois pas trop comment m'y prendre

Je sais pas si jsuis assez clair :s

Merci d'avance pour votre aide
Arkoze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 16h22   #2
Membre éprouvé
 
Homme Gaetan
Webmaster
Inscription : janvier 2007
Messages : 386
Détails du profil
Informations personnelles :
Nom : Homme Gaetan
Âge : 40
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : Biens de consommation

Informations forums :
Inscription : janvier 2007
Messages : 386
Points : 441
Points : 441
Envoyer un message via MSN à Gaetan_
Fais déjà attention à tes quotes :

Code :
1
2
3
4
for($i=0; $i<10; $i++) {
    echo '<button type="button" onclick="showHide(\'maDiv\')">bouton</button>';
     echo '<div id="maDiv">Mon text</div>';
}
Et après nommer les DIV en fonction de ton compteur :

Code :
1
2
3
4
for($i=0; $i<10; $i++) {
    echo '<button type="button" onclick="showHide(\'maDiv['.$i.']\')">bouton</button>';
     echo '<div id="maDiv['.$i.']">Mon text</div>';
}
Pour le JS/CSS je passe mon tour
Gaetan_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2011, 16h24   #3
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 81
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2007
Messages : 81
Points : 11
Points : 11
Oui je sais, faut pas faire attention au quotes, c'est juste vous donner une idée du fonctionnement, merci quand meme

C'est ce que jcomptais faire coté php mais coté js et css je bloque un peu.

Déjà comment dire dans le css de cacher toutes les div surtout si j'ai une boucle à 10 000 occurences
Arkoze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 13h00   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Bonjour,

Avec le code php que tu génères les div, tu auras un id qui se répète. Un id doit être unique dans un document. Crées une nouvelle discussion sur le forum javascript en postant le code HTML généré mais pas le code PHP. Tu auras plus de chance.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 02h38   #5
Membre actif
 
Inscription : décembre 2006
Messages : 184
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 184
Points : 198
Points : 198
Citation:
Envoyé par Arkoze Voir le message
Oui je sais, faut pas faire attention au quotes, c'est juste vous donner une idée du fonctionnement, merci quand meme

C'est ce que jcomptais faire coté php mais coté js et css je bloque un peu.

Déjà comment dire dans le css de cacher toutes les div surtout si j'ai une boucle à 10 000 occurences
déjà ton navigateur risque de pas trop aimer si tu affiche 10000 objects c'est pas vraiment fait pour sinon pour répondre à la question qui n'est pas du php mais du css et du javascript utilise les classes pour les styles et voit du coté des sibbling en javascript surtout si ton noeud bouton suis le noeud div.
Helfima est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 09h53   #6
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 81
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2007
Messages : 81
Points : 11
Points : 11
Citation:
Envoyé par andry.aime Voir le message
Bonjour,

Avec le code php que tu génères les div, tu auras un id qui se répète. Un id doit être unique dans un document. Crées une nouvelle discussion sur le forum javascript en postant le code HTML généré mais pas le code PHP. Tu auras plus de chance.

A+.
mais le problème c'est que jsuis obligé de généner plusieurs div via une boucle. J'avais pensé à mettre en id de la div, un id qui serait la concateination d'un nom+id (de la boucle for).
Arkoze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 10h08   #7
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 81
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2007
Messages : 81
Points : 11
Points : 11
Je viens de trouver la solution

J'ai juste rajouter une class à ma div en plus d'un id qui est unique grâce à la concateination avec l'id de la boucle.

Merci pour votre aide
Arkoze est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h19.


 
 
 
 
Partenaires

Hébergement Web