[RESOLU] générer un lien

Eléphant du PHP | 166 Messages

19 janv. 2017, 16:12

Bonjour

Pour un exercice, je dois créer une liste d'année.
Ensuite à partir de cette liste, si je Click sur une année, je dois générer un lien ?

Ma question :
Est ce possible de générer un lien <a> en cliquant sur une liste HTML <li> ?

Moi j'ai créer pour chaque année, une variable de type : $year1, $year2, $year3. pour pouvoir manipuler par la suite et surtout créer un lien <a>.

Mais je pense qu'il faut le faire à partir d'une liste HTML <li>, mais là je bloque. Car en général on créer dans la liste <li> le lien <a>, et dans ce cas, cela ne correspond pas à ma consigne du devoir ??

Mammouth du PHP | 2703 Messages

19 janv. 2017, 16:16


Eléphant du PHP | 166 Messages

19 janv. 2017, 16:23

Merci
En fait, je suis vraiment au niveau initiation PHP. Je n'ai pas encore vue les script, function etc...

Je ne vois pas comment générer un lien à partir d'une liste.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

19 janv. 2017, 17:56

salut,

php ou pas un lien html est un lien html. Php sert peux être à le générer mais c'est tout.
donc pour avoir un lien html a partir de php : echo '<a href=" ....">le texte du lien</a>'; tu peux le mettre dans un li dans problème ;)

dans ton cas une liste de d'année c'est un tableau. tu peux le générer à partir de la fonction range.

pour parcourir un tableau utilise la structure foreach.
au total ton script toi tenir en 7 lignes si tu respecte PSR-1 et 2 (5 au minimum).

script c'est générique comme terme, cela représente un fichier d'un langage de "script" comme php (python, javascript etc).

les fonctions, c'est simple faut regarder dans la doc :-)

globalement il faut toujours avoir la doc sous le code c'est super pratique et la plus part du temps il y a des exemples.


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 166 Messages

19 janv. 2017, 23:40

Je ne comprend toujours pas.
Comment à partir de mon <li> en cliquant sur la date, cela génère un lien ?
J'essai tout un tas de code, je n'y arrive pas....

Mammouth du PHP | 1967 Messages

20 janv. 2017, 09:14

et tu n'y arriveras pas en restant en php.

Quelle est l'intitulé exacte de ton exercice ?
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphant du PHP | 166 Messages

20 janv. 2017, 10:25

en fait voici mon exercice :
En utilisant les : listes + Génération de liens + les GET + FOREACH
Il faut construire un site qui affiche la liste des années disponibles pour les films listés. Quand l’utilisateur clique sur une année, les films sont affichés.
A – Afficher en liste les années des films listés.
B – l’utilisateur sélectionne une date, la liste des films liés est affichée avec leur description.
Il faut bien-sur construire un Tableau aussi.
je ne veux pas un code tout fait, je veux comprendre comment générer se fameux lien.
ça parait simple mais je bloque la dessus.
apparemment il ne faut pas faire le lien habituelle dans le <li> ??
et avec le peu de connaissance PHP(débutant), il doit y avoir une astuce.....

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 janv. 2017, 11:25

sais tu le faire en html ?

Je pense que tu n'as pas compris a quoi sert php.
PHP va permettre d'afficher quelque chose. ce chose peux être du texte, une image, et souvent (parce que contexte web) du html (mais pourquoi pas du json, du css ...).

En clair php va générer du code html et c'est tout. Donc une liste html reste une liste php va juste afficher la liste (echo '<li> .... </li>';)

Dans mon premier message je t'ai fournis des liens qu'en as tu tirés ?

La liste des années semble venir d'une source de données (SGBD ? ce n'est pas indiqué dans l'énoncé).
Sais tu récupérer cette liste (sans même parler d'affichage c'est le plus simple) ?

si tu ne sais vraiment pas comment commencer ton exercice peut être qu'il faudrait voir avec ton "prof" pour qu'il te guide.

Il faut vraiment que tu comprennes la différence entre PHP (serveur) et HTML (navigateur client loin du serveur).
Une fois cela fait ça va aller.

ensuite il faut déterminer la source des données. Si c'est une base de données il faut que tu commences par créer la requête qui va bien et ensuite tu afficheras la liste de lien qui mènent tous vers la même page avec un paramètre qui sera l'année qui va permettre d'afficher la liste des films.

Attention à l'affichage avec des tableaux il y a des manières beaucoup plus sexy que les tableaux pour afficher des données (si tu as des données facilement utilisable sur excel pourquoi pas mais la y a moyen de faire mieux avec des div et des css (genre image à gauche et description à droite et ça c'est surtout pas avec une table ;) )

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 166 Messages

20 janv. 2017, 12:32

Merci de tes réponses.
Je pense que je suis sur la bonne piste.
En tous cas cela fonctionne.

Code : Tout sélectionner

<body> <!-- je créer ma liste d'année --> <ul> <li><a href="index.php?year=2005">2005</a></li> <li><a href="index.php?year=2010">2010</a></li> <li><a href="index.php?year=2015">2015</a></li> </ul> <?php if ($_GET['year']) { if ($_GET['year'] == 2005) echo 'salut'; //print_r($_GET); } ?>
je fais bout a bout, et vais continuer dans se sens..

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 janv. 2017, 12:49

alors la tu vas avoir une erreur quand le tableau $_GET ne contient pas d'index year.
si tu n'as pas d'erreur il faut impérativement que tu
- affiche les erreurs : display_error : on
- affiche toutes les erreurs : error_reporting : E_ALL
ces paramètres sont modifiable dans le fichier php.ini (pense a redémarrer ton serveur http ensuite).
c'est important pour que tu ai une bonne idée de ce qui se passe et ainsi fiabiliser ton code.
ensuite on fait un if sur un booleen. Oui le language permet ce que tu as fait. mais a ton avis que ce passe t'il si tu met zéro dans year ? (à tester ;) )
il faut utiliser la fonction isset, ou mieux (pour moi) empty

Sinon le principe est bon.
Maintenant est ce que cette liste est figée ? (c'est dommage de "faire des page dynamique" si c'est pour tout mettre en dure ;)
d'où proviennent les données ? (base de données ?).

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 166 Messages

20 janv. 2017, 15:35

Oui, pour l'exercice les données sont figées.

ifou
Invité n'ayant pas de compte PHPfrance

26 juin 2020, 01:55

alors la tu vas avoir une erreur quand le tableau $_GET ne contient pas d'index year.
si tu n'as pas d'erreur il faut impérativement que tu
- affiche les erreurs : display_error : on
- affiche toutes les erreurs : error_reporting : E_ALL
ces paramètres sont modifiable dans le fichier php.ini (pense a redémarrer ton serveur http ensuite).
c'est important pour que tu ai une bonne idée de ce qui se passe et ainsi fiabiliser ton code.
ensuite on fait un if sur un booleen. Oui le language permet ce que tu as fait. mais a ton avis que ce passe t'il si tu met zéro dans year ? (à tester ;) )
il faut utiliser la fonction isset, ou mieux (pour moi) empty

Sinon le principe est bon.
Maintenant est ce que cette liste est figée ? (c'est dommage de "faire des page dynamique" si c'est pour tout mettre en dure ;)
d'où proviennent les données ? (base de données ?).

@+
J'ai l'énoncé et le but est de générer une liste html de date clicable faisant apparaître titre des films + résumé associés à cette date. La base de donnée liée a tout cela est un array issu d'un scraping de donné.