Lien hypertexte dans PHP

Signaler
Messages postés
12
Date d'inscription
samedi 27 décembre 2008
Statut
Membre
Dernière intervention
3 janvier 2009
-
Messages postés
12
Date d'inscription
samedi 27 décembre 2008
Statut
Membre
Dernière intervention
3 janvier 2009
-
Bonjour!
Je suis étudiante et j'ai une matière qui se nomme "communication assistée par ordinateur" pour laquelle je dois rendre un exercice.
Seulement, je suis tout à fait débutante et je ne parviens pas du tout à le faire...!!!

Je dois créer un tableau dans html-kit avec deux colonnes. Dans la première, il y a quatre mots (bleu, vert, jaune, rouge) les uns en dessous des autres, et dans la deuxième, il y a un texte.
Ensuite, lorsque je clique sur le mot "bleu", lui même de couleur bleue, le texte doit s'afficher en bleu, lorsque je clique sur le mot "vert", lui même de couleur verte, le texte doit s'afficher en vert et ainsi de suite...

Voici ce que j'ai fait jusqu'a maintenant, ce n'est vraiment que le commencement....!!!
<html>
<head>
<title>jeu_des_couleurs</title>
</head>

<table border="1" align="center">
 <TR>
  <TD>&nbsp;</TD>
  <TD>LE JEU DES COULEURS</TD>
  <TD>&nbsp;</TD>
 </TR>
 <TR>
  <TD>bleu

vert

jaune

rouge

</TD>
  <TD align="center">TEXTE</TD>
 </TR>

</html>

Si quelqu'un sait comment faire, ce serait super!!
Par avance, merci beaucoup,

Tjen18

21 réponses

Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

Déjà ton code HTML est vieillot, ... et c'est peu dire. Utilises style, et vire les , les , les align.
Alors quelques pistes (tu es étudiante ... étudie !! ) :
<TD align="center">TEXTE</TD>
> ajoute un id (id"trucmuche")

=> ensuite pour chaque couleur de la colonne de gauche il te faudra ajouter un truc dans le genre :
onclick="document.getElementById('trucmuche').style.color = ..."

N'hésite pas à redemander de l'aide lorsque tu auras avancé.

Cordialement,

Kohntark-
Messages postés
12
Date d'inscription
samedi 27 décembre 2008
Statut
Membre
Dernière intervention
3 janvier 2009

Merci beaucoup pour cette réponse!
Mais....encore quelques questions....c'est vrai que j'ai vraiment du mal....
Le id, c'est pour créer une référence c'est ca? Du coup le 'trucmuche' il faut que ce soit le texte ou la couleur? plutot la couleur non?
Et quel est le code pour ajouter un ID?

Merci par avance, et désolée de ce niveau si faible...!

Tjen18
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Et quel est le code pour ajouter un ID?

> id"trucmuche"

par exemple :
TEXTE

L'ID est l'identifiant unique de la balise. Il est ensuite facile d'y accéder avec javascript.
Par exemple :
bleu

=> Le fait de clicker sur le texte bleu (onclick) mettra le texte d'ID "txt_change_couleur" en "blue".

Cordialement,

Kohntark -
Messages postés
12
Date d'inscription
samedi 27 décembre 2008
Statut
Membre
Dernière intervention
3 janvier 2009

Et je me trompe peut être completement mais n'est-ce pas possible de faire l'exercice en utilisant une boucle ( avec for, echo, if, else etc...) ?
Car apparement l'exemple que j'ai dans mon cours correspondrait plutôt à cela...
J'ai bien essayé avec votre exemple mais étant donné que je n'ai pas commencé comme cela, je ne sais pas du tout où le placer et tous les essais que j'ai fait se sont révélés mauvais !

Merci par avance,

Tjen18
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Re,

Quel est le sujet exact de ton exercice ?
Il est à mon avis utile de le préciser.
Si ce que tu écrivais dans ton premier post est exact, et se limite à ça :
Je dois créer un tableau dans html-kit avec deux colonnes. Dans la
première, il y a quatre mots (bleu, vert, jaune, rouge) les uns en
dessous des autres, et dans la deuxième, il y a un texte.
Ensuite,
lorsque je clique sur le mot "bleu", lui même de couleur bleue, le
texte doit s'afficher en bleu, lorsque je clique sur le mot "vert", lui
même de couleur verte, le texte doit s'afficher en vert et ainsi de
suite...

=> alors il faut utiliser javascript comme je le suggérais jusqu'ici. PHP est totalement hors propos, ainsi que les liens hypertext, les for, echo, etc ...

Maintenant si on te demande d'utiliser impérativement PHP, il faut que tu passes soit par un formulaire, soit par un lien qui pointera vers un script PHP qui mettra les couleurs là où il faut et te renverra la page modifier, ... mais là c'est du n'importe quoi, n'hésite pas à le dire à tes profs

Cordialement,

Kohntark -
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Messages postés
12
Date d'inscription
samedi 27 décembre 2008
Statut
Membre
Dernière intervention
3 janvier 2009

Re,

Oui le sujet c'est exactement ça, en utilisant du PHP oui...C'est vrai que ce n'est certainement pas le plus pratique...!


Et est-ce-que tu sais comment on fait ce fameux lien par hasard?


Merci beaucoup en tout cas de ton interet,

Tjen18
Messages postés
12
Date d'inscription
samedi 27 décembre 2008
Statut
Membre
Dernière intervention
3 janvier 2009

Oulala c'est fabuleux ca!!

Oui, je ne sais pas ci cel correspond exactement à ce que demande la prof...

Je crois que je vais abandonner, je tente de faire des recherches depuis hier mais vu qu'en plus je n'y comprends pas grand chose, c'est pas évident...

En tout cas merci beaucoup pour tout cela, c'est vraiment très gentil,

Tjen18
Messages postés
12
Date d'inscription
samedi 27 décembre 2008
Statut
Membre
Dernière intervention
3 janvier 2009

Mais quelle est réellement la différence entre javascript et php dans la manière de réaliser les choses?
Car on retrouve beaucoup de choses communes? Comment peut on savoir ce qui appartient a javascript ou php?

Merci,

Tjen18
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Il faut bien garder à l'esprit que javascript et PHP n'ont rien à voir, même s'ils peuvent se ressembler sur certaines structures de langages (comme quasiment tous les langages d'ailleurs) :

Pour rappel :
visiteur =[internet]=> serveur | le client envoie une requête au serveur pour demander une page (url)
visiteur <=[internet]= serveur | le serveur renvoie la page demandée

et pour faire simple :
javascript <=[internet]=> PHP

    Javascript s'éxécute sur la machine du visiteur, il est chargé dans le code HTML que lui envoie le serveur. Il ne peut pas s'éxécuter sur le serveur, il ne peut pas interroger directement une base de données, etc... Par contre il peut interagir avec l'utilisateur, modifier la présentation et le contenu de la page (sans refaire un appel au serveur, c'est donc l'ordinateur du visiteur qui exécute le script), etc ...

    Un script PHP s'éxécute côté serveur, il est impossible de l'éxécuter sur la machine du visiteur. Il ne peut donc pas modifier directement la présentation ou le contenu d'une page sans qu'il y ait un nouvel appel au serveur de la part du visiteur. Par contre il est capable de générer des pages (éventuellement en fonction de paramétres envoyés par le client), d'interroger une base de données, de générer du code javascript qui sera ensuite exécuté sur la machine du client, etc ... mais les données générée devront être envoyées au client.

Ce qui m'amène à dire que, pour ce que tu as à faire, il est totalement inutile d'émettre une nouvelle requête au serveur. D'une part cela demande du temps et des ressources, mais surtout c'est beaucoup plus performant et simple à réaliser en javascript.

Kohntark -
Messages postés
46
Date d'inscription
vendredi 24 octobre 2008
Statut
Membre
Dernière intervention
27 janvier 2009

Bonjour,

Voici un code qui mêle php et javascript.

<html>
<head>
<title>jeu_des_couleurs</title>
</head>

LE JEU DES COULEURS,

----

<?php
$couleurs = array(
"rouge" => "FF0000",
"bleu" => "0000FF",
"vert" => "00FF00",
"jaune" => "FFFF00"
);
foreach($couleurs as $cle=>$valeur)
{
$text= "txt_change_couleur";
$lien = ''.$cle.'

';
echo $lien;
$lien="";
}
?>,
TEXTE


</html>
Messages postés
12
Date d'inscription
samedi 27 décembre 2008
Statut
Membre
Dernière intervention
3 janvier 2009

Merci pour cette explication Kohntark.


Merci également à Noreaga10000, et une question, comment peut-on savoir ce qui est en php et ce qui est en javascript?
Du coup, vous ne pensez pas que ce soit possible de le faire uniquement en php?

Si je vous envoyait l'exemple du cours, pensez-vous que cela vous aiderait à comprendre ce que je recherche? Car j'imagine que je m'explique très mal étant donné mes faibles (voire quasi-nulles) connaissances à ce sujet!

Merci beaucoup,

Tjen18
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Bon, je vois que Noreaga à déjà posté, ... mais je le fais tout de même (je n'aurai pas passé du temps pour rien )

Alors :
script purement javascript (le mieux pour répondre à ton exercice)
= > ici

script purement PHP :
=> ici

Et les scripts complets :
J'ai essayé de les faire les plus simples possibles.

javascript :

<html>
<head>

<title>jeu_des_couleurs en javascript</title>
</head>

<style>
table {
  border-style : solid;
  border-width : 1px;
  text-align : center;
  width: 50%;
}
td {
  border-style : solid;
  border-width : 1px;
  cursor : pointer;
}

</style>

  LE JEU DES COULEURS EN JAVASCRIPT,

----

    bleu
 ,
    TEXTE
 ,
 

----

    vert
 ,

 
----

    jaune
 ,

----

    rouge
 ,
 
 

 

</html>

PHP :

<html>
<head>

<title>jeu_des_couleurs en PHP</title>
</head>

<style>
table {
  border-style : solid;
  border-width : 1px;
  text-align : center;
  width: 50%;
}
td {
  border-style : solid;
  border-width : 1px;
  cursor : pointer;
}
</style>

<?php

if (isset($_GET['color'])) {

  $text = '
  <td rowspan="5">
  TEXTE
  </td>
  ';
} else {
  $text = '
  <td rowspan="5">
  TEXTE
  </td>
  ';
}

echo '
  LE JEU DES COULEURS EN PHP,

----

    bleu
 ,
  '.$text.'

 
----

      vert
 ,
 

----

      jaune
 ,

----

      rouge
 ,
 

 
 

</html>
';
?>

une question, comment peut-on savoir ce qui est en php et ce qui est en javascript?
=> par la structure du langage et l'endroit où ils s'exécutent !!, et plus simplement par les balises qui ouvrent et ferment le script :
un script PHP commence par "<?php" et fini par "?>"
un script javascript commence par "<script type="text/javascript" ..." ou "<script language="javascript".." et fini par "</script>"
Par ailleurs le javascript peut être intégré aux balises HTML, comme "onclick", "onmouseover", etc ...

Kohntark -
Messages postés
12
Date d'inscription
samedi 27 décembre 2008
Statut
Membre
Dernière intervention
3 janvier 2009

Alors la, je te remercie vraiment beaucoup, je suis impressionnée...J'éspère qu'un jour je serais capable de faire ça!
Si ce n'est pas indiscret je peux te demander où tu as appris ? Et si c'est simplement une envie d'apprendre tout  cela ou bien si tu t'en sers par exemple dans ton métier ?
Car moi, je suis dans la communication, et c'est vrai qu'au début, je ne voyais pas bien l'interet d'apprendre tout cela, mais au final, j'ai vraiment envie de progresser sur la conception de sites web...

En ce qui concerne l'exercice, ça ne fonctionne pas sur html-kit et easy php, je ne comprends pas pourquoi mais bon, ce n'est pas bien grave j'imagine, puisque quand je clique sur ton lien, tout fonctionne correctement...

Par contre, évidemment, je ne voudrais pas rendre quelque chose que je n'ai pas fait moi-même ou du moins que je n'ai pas compris, alors je vais encore poser quelques questions!
Mais, je le dis sincèrement, si tu n'as pas le temps (ou la patience, car avec moi il en faut de la patience!! ) de répondre, il n'y a aucun problème, je comprendrais tout à fait... Surtout vu ce que tu as déjà fait pour moi!!

Je remarque que tu as utilisé la méthode GET, pourquoi?
if veut dire si, else veut dire que c'est ce qui apparaitrait s'il n 'y a pas le echo, c'est bien ça?
A quoi correspondent les ' ? Comme par exemple: $text = '
Que veut dire rowspan ?
Pourquoi met-on des points a cet endroit? '.$_GET['color'].'
Pourquoi y a t il '.$text.' a cet endroit
<tr>
  <td>
  [colors_game_php.php?color=0033cc bleu]
  </td>
  '.$text.'
</tr>
alors qu'il n'est pas noté pour les couleurs suivantes?
Que veulent vraiment dire les $?

Et sinon, peux tu m'expliquer avec des mots francais et non plus dans le langage php () ce qu'on recherchait vraiment et comment on a réussi à le réaliser ?

Evidemment, je le dis encore une fois, je sens bien que je suis vraiment lourde donc si ça commence à t'agacer ce n'est pas un problème, je te remercie encore une fois de tout ce que tu as fait pour m'aider.

Si quelqu'un d'autre veut prendre le relais, c'est biensûr avec plaisir!

Cordialement,

Tjen18
Messages postés
12
Date d'inscription
samedi 27 décembre 2008
Statut
Membre
Dernière intervention
3 janvier 2009

Ah voilà! C'est ça aussi que je ne comprends pas bien, où est la référence "colors_game_php" que tu mets dans ? Car elle ne fait pas partie de notre document? où va-t-il la chercher?

Merci par avance,

Tjen18
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Re Tjen ,

Heureux de constater que tu souhaites apprendre et n'attends pas du code "tout cuit" comme c'est malheureusement trop souvent le cas ici.

Si ce n'est pas indiscret je peux te demander où tu as appris ? Et si
c'est simplement une envie d'apprendre tout  cela ou bien si tu t'en
sers par exemple dans ton métier ?
=> j'ai appris par mes propres moyens, à travers le net, des tutos, des sites comme celui ci, et grâce à beaucoup de travail ... mais ça n'est pas pour autant que je suis bon

Je n'ai pas de site en tête, mais je te conseille de faire des recherches sur les tutoriaux PHP, HTML, JS, etc ... Ce n'est pas que je ne veuille pas t'aider, bien au contraire, mais ces tutoriaux t'apporteront beaucoup plus qu'une "formation" via un forum. Une fois que tu auras acquis quelques bases n'hésite surtout pas à venir poser tes questions ici.
Tu peux déjà jetter un oeil ici :
http://fr3.php.net/manual/fr/langref.php

En ce qui concerne l'exercice, ça ne fonctionne pas sur html-kit et
easy php, je ne comprends pas pourquoi mais bon, ce n'est pas bien
grave j'imagine, puisque quand je clique sur ton lien, tout fonctionne
correctement...
=> je ne connais pas html-kit, essaie de copier l'un des 2 codes directement dans un fichier texte (notepad par exemple) et tu l'enregistre sous colors.php (que ce soit l'un ou l'autre l'extension ne changera rien)
Si ça ne fonctionne pas dis moi si tu as une erreur, une page blanche, ....

Kohntark-
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
if veut dire si, else veut dire que c'est ce qui apparaitrait s'il n 'y a pas le echo, c'est bien ça?

= > http://fr3.php.net/manual/fr/control-structures.if.php
=> http://fr3.php.net/manual/fr/control-structures.else.php

if (isset($_GET['color'])) { // si $_GET['color'] existe (cad http://[site]/colors_game_php.php? color =00cc00 )

  // alors on affiche la cellule contenant TEXTE avec la couleur passée dans $_GET['color']
  $text = '
  <td rowspan="5">
  TEXTE
  </td>
  ';} else { // else sinon si $_GET['color'] n'existe pas, cas d'arrivée sur la page par exemple (http://[site]/colors_game_php.php)
// on affiche le texte en noir
  $text = '
  <td rowspan="5">
  TEXTE
  </td>
  ';
}
A quoi correspondent les ' ? Comme par exemple: $text ' > http://fr3.php.net/manual/fr/language.types.string.php

Que veut dire rowspan ?
= > http://fr.selfhtml.org/html/tableaux/relier_cellules.htm

Pourquoi met-on des points a cet endroit? '.$_GET['color'].'
=> parce qu'une chaîne caractère se met entre apostrophe (')
donc si je fais echo 'chaine$_GET['color']'; ça ne marche pas, car $_GET['color'] est interprétée comme une simple chaîne de texte alors que c'est une variable (en plus ça produit une erreur avec les " ' "). Pour que la variable soit interprété correctement il faut faire ainsi.

Pourquoi y a t il '.$text.' a cet endroit
<tr>
  <td>
  [colors_game_php.php?color= 0033cc bleu]
  </td>
  '.$text.'
</tr>
alors qu'il n'est pas noté pour les couleurs suivantes?
=> Parce que la variable $texte insérée icicontient le code que l'on lui a attribué avant (if{...}else{..}), elle permet donc d'afficher la cellule avec le texte "TEXTE" et la couleur qui va bien

Que veulent vraiment dire les $?
=> http://fr3.php.net/manual/fr/language.variables.basics.php

où est la référence "colors_game_php" que tu mets dans ?
=> c'est un lien hypertexte (et</italique> non pas "colors.php" comme je le disais.

;) bon courage,

Kohntark -
Messages postés
12
Date d'inscription
samedi 27 décembre 2008
Statut
Membre
Dernière intervention
3 janvier 2009

Vraiment, je ne sais comment te remercier pour tout ça!!
Je suis sur le lien que tu m'as envoyé tout à l'heure, je lis en essayant de comprendre, il faut vraiment que je progresse!!
Et merci mille fois pour les réponses à mes questions, je comprends déjà beaucoup mieux...


Bien cordialement,

Tjen18
Messages postés
12
Date d'inscription
samedi 27 décembre 2008
Statut
Membre
Dernière intervention
3 janvier 2009

Bon c'est encore moi!!

Je suis encore sur mon truc depuis tout à l'heure, j'ai lu pas mal de choses, je comprends vraiment mieux...

Voici ce que j'ai fait pour rendre l'exercice, j'ai préféré modifier plusieurs petites choses pour que ça corresponde mieux à ce qu'on a vu en cours et aussi pour que je me familiarise un peu avec cet exercice!!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<html>
<head>
<title>jeu_des_couleurs</title>
</head>




<?php


if (isset($_GET['color']))
{
$text = '<td>TEXTE</td>';
}
else
{
$text = '<td>TEXTE</td>';
}


echo '
  LE JEU DES COULEURS,

----

  bleu

         vert

         jaune

         rouge

 ,
  '.$text.'

 

</html>
';
?>

Mais en fait, le GET il veut dire quoi exactement ici ?
Je sais que c'est une méthode, mais pourquoi a-t-on utilisé celle-ci ?

Je vais te montrer l'exercice que la prof nous a fait en cours juste pour te donner une idée:
<?php
 if (isset($ligne)==0) $ligne=3;
 if (isset($colonne)==0) $colonne=3;
?>
<HTML>
 <HEAD>
  <title> jeu.php </title>
 </HEAD>
 
  le jeu du jour

   <?php
   for ($i=1; $i<=5; $i++)
       {echo'----
';
        for ($j=1; $j<=5; $j++)
             {echo'';
              if(($i==$ligne)AND($j==$colonne))
                {echo'X';}
                else {echo'&nbsp;';}
                echo', ';
              
             }
         echo'';
        }
 ?>
 

  Navigation

 <?php $ligneavant=$ligne-1;
    $ligneapres=$ligne+1;
   $colonneavant=$colonne-1;
   $colonneapres=$colonne+1; ?>
     ----

   &nbsp;,
   <?php if($ligne<=1)
         echo'N';
    else
    {echo'N';}?>,
       
  </TD>
   &nbsp;,
  
  ----

   &colonne=<?php echo$colonneavant;?>">O,
   &nbsp;,
   &colonne=<?php echo$colonneapres;?>">E,
  
  ----

   &nbsp;,
   &colonne=<?php echo$colonne;?>">S,
   &nbsp;,
  
  

 Formulaire

<Form method="POST" action="jeu_du_jour.php">
   ----

  Ligne,
  ">,
 
 ----

  Colonne,
  ">,
 
  ----

  <colspan="2">,
 
 

 
</HTML>

Elle n'a pas utilisé la même méthode que nous si?

Merci,
 
Tjen18
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

Mais en fait, le GET il veut dire quoi exactement ici ?
Je sais que c'est une méthode, mais pourquoi a-t-on utilisé celle-ci ?
=> GET est une méthode pour passer des arguments via l'url. Nous aurions pu utiliser POST, mais nous aurions dû mettre en place un formulaire (comme dans l'exercice de ta prof).

1-Une url sans argument :
http://trucmuche/index.php

2-Une url avec 1 argument (en bleu) :
http://trucmuche/index.php?color=black

3-Une url avec plusieurs arguments (en bleu) :
http://trucmuche/index.php?color=red&id=65&name=tartanpion

le "?" indique que les valeurs suivantes sont des arguments.
le "&" permet de séparer les arguments.

En continuant avec cet exemple, si je fais, dans la page index.php :
2-
echo $_GET['color'];
=> affichage de "black"

3-
echo $_GET['color']; // affichera "red"
echo $_GET['id']; // affichera "65"
echo $_GET['name']; // affichera "tartanpion"

1-
echo $_GET['color']; // affichera une erreur puisque l'argument "color" passé via la méthode GET n'existe pas

euh ... si tu as recopié à la lettre l'exemple que t'a donné ta prof tu vas en faire bondir plus d'un ici, c'est truffé d'erreurs, l'exemple même du truc à ne pas suivre !!
Ca ne devrait pas (?) poser de problème dans le fonctionnement, mais franchement, dans un cadre éducatif la moindre des choses est de proposer un code correct, conforme aux standards.
Tu pourras lui dire qu'elle revoit sa copie. Perso ça vaut 1/20 de la part d'un "prof"

Elle n'a pas utilisé la même méthode que nous si?
Elle montre les 2 méthodes "POST" et "GET"

J'y regarderai de plus près quand j'aurai 5 min.

Kohntark -