Salut, mets une classe sur le lien et mets ce script à la fin :
Bonjour,
Voila mon probleme, j'ai suivi les tutos pour développer un site en MVC à la lettre, par change j'ai jamais eu trop de souci lors des premires vidéos mais à la 4ème .. j'aiun petit souci, qui n'as pas une grande importance je pense mais qui m'embête :p ,
Ma function debug($var) fonctionne mais pas le "onclick" sur le lien
Comme dans la video 4 du tuto "developper un site php de a à z" a 33min20, j'aimerai qu'en cliquant sur le lien, toute la liste de lien contenu dans le <ol> disparaisse/apparaisse ..
Or rien ne se passe, lorsque j'ouvre mon inspecteur pour regarder ou ca coince, ca me dit "ReferenceError: Can't find variable: $" (celle qui est apres le onclick="$(this).parent()..."
Ca serait genial que quelqu'un sache d'ou vient mon problemme, est ce que c'est pck je n'ai pas jQuery ou est cel organisationde mes divs enfin je sais plus quoi penser ..
14 réponses
merci bcp, j'ai essayé ca direct mais j'ai pas su exactement ou mettre ce bout de code... j'suis pas bien doué encore, est ce dans le onclick="...ici???..." ou je laisse tout ce que j'ai et je met votre bout de script a la fin ? ou est ce autre chose ? :p merci bcp d'avoir répondu aussi vite encore :)
Salut,
Ce bout de code dans ton fichier PHP :
C'est du jQuery, que PHP ne peut pas comprendre.
AlexJM te dis de virer complètement le onclick qui est sur ton lien en fait.
L'intéraction du "clic sur le lien qui appel un bout de code" se fera par du javascript, c'est le bout de code qu'il t'a donné.
Ce bout de code en javascript, tu as 2 façon de "l'insérer" :
1) directement dans le ficher PHP, en utilisant la balise < script >:
2) Dans un fichier à part, "nom_fichier.js" que tu inclu dans ton fichier .php
Le "lien" entre PHP et JS ne peut se faire qu'avec les "class" ou "id".
Ici on a choisi d'attribuer à ton lien, la classe "lenomdetaclasse", donc il faut la rajouter sur ta balise < a > :
Par contre le code JS me parait un peu lourd, je n'aurai mis que ça :
merci bcp a tous les 2 pour votre aide
Finalement j'ai un dernier petit souci ... les balises script dans le PHP ont l'air de pas tres bien etre reconnues..
Dois-je faire un echo '<.script>...<./script>' ?
ou simplement utiliser un fichier a part, cela m'arrangerait que ce soit dans le PHP directement :/
Je vais me permettre de donner une petite explication supplémentaire et de corriger un peu ce que tu as dit.
Tout d'abord, dans ton fichier php, tu as du code html :
Ensuite, tu as aussi le code php, sous la forme
Et même à d'autres endroits.
Ensuite, tu peux ajouter ton javascript. Ce qui est fait, majoritairement, à la fin du fichier, pour pas bloquer le chargement de la page :
Alors voilà, tu as ta balise scrit pour inclure du javascript. Tu as maintenant deux choix :
1) Tu mets ton javascript dans un fichier extérieur (par exemple app.js) :
Et tu l'appelles avec l'attribut src de la balise script :
2) Tu mets directement ton javascript dans ton html :
Tout en n'oubliant pas que tu dois charger jquery par la première méthode.
Ensuite, passons à l'explication du code javascript
A la premiere ligne, on appelle la fonction $ avec comme paramètre une fonction anonyme. Dans cette fonction, on exécutera TOUT ce qui est en rapport avec jquery. En effet, elle assure que jQuery ainsi que la page a bien fini de charger
Ensuite, tu sélectionne toujours via la fonction $('...') tous les éléments que tu pourrais sélectionner en css avec le ..., donc là tu sélectionne tous les éléments ayant comme classe "lenomdetaclasse"
Le .click, tu ajoutes un "listener", un écouteur, qui écoute l'événement click sur tous ces éléments et tu passes en paramètre une fonction anonyme qui s'exécute au click
Pour la fonction anonyme, en paramètre, tu as l'événement
Le e.preventDefault() permet d'empêcher ce qui se passe par défaut, comme aller vers une autre page
Le $(this) permet de sélectionner l'élément cliqué, et la suite du code c'est celle que tu as donné
J'espere que tu as compris, si tu as encore des questions n'hésite pas ;)
mon probleme vient surement du fait que la page php dans laquelle j'ecris est en realité le contenu d'une autre page, avec laquelle j'appelle le contenu...
Je n'ai donc pas de doctype, head et body. Je n'ai pas non plus chercher a charger JQuery..
je vais essayer de me debrouiller avec les renseignzments tres complets de ta reponse merci bcp encore une fois et navré de poser des questions si peu constructives pour le forum :/
page php dans laquelle j'ecris est en realité le contenu d'une autre page
Et tu charges ta page avec un include ?
Voici des photos de mon editeur html/php, sur la gauche vous pouvez voir le schéma du site, cela poura peut etre vous aider a comprendre d'ou venait mon probleme :)
https://drive.google.com/file/d/0B2WPAteCPfi5bmdBRkNHUXBONTA
https://drive.google.com/open?id=0B2WPAteCPfi5a3pFSGR6NWJxZ0U
Ce qui donne ceci sur un navigateur (ici safari)
https://drive.google.com/file/d/0B2WPAteCPfi5NlloZFJoNDUyNUk
mon problème étant qu'au click sur la ligne bleue, les trois petits liens noirs contenu dans un "ol" ne disparaissent/apparaissent pas.
Si tu utilises la méthode 2) d'alexJM, tu peux mettre ton javascript dans les "view.php" (à l'intérieur d'une balise : < script >< /script >).
Si tu utilise la méthode 1) c'est dans ton fichier view/layout/default.php qu'il faut mettre la balise < script src="chemin_vers_fichier_js">< /script >
(juste avant la balise < /body > "fermante"
merci bcp j'vois comment charger jQuery maintenant et merci a vous tous, vous m'avez bien eclairé merci bcp ! :)
Tres interessant le developpement, domage que je galere autant :/
Pas de problème, pense à regarder la série javascript que Grafikart est entrain de faire ;)
Ca marche pas de souci, j'suis pas H24 sur mon ordi en ce moment mais j'hesiterais pas a aller voir son tuto des que j'aurais besoin ;)
Ils sont tous geniaux de toute facon les tutos de GrafikArt
j'ai trouvé une solution aléatoire, charger jQuery dans le default.php situé dans layout :) (solution qui me semble etre celle de base sur le tuto