Affichage d'un tableau sur une même page en cliquant sur un lien

Fermé
Onizuka95 Messages postés 6 Date d'inscription samedi 4 mars 2017 Statut Membre Dernière intervention 5 mars 2017 - 5 mars 2017 à 19:04
jordane45 Messages postés 38404 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 février 2025 - 5 mars 2017 à 20:23
Bonjour,
Je travail sur un projet où je dois créer un graphe de noeud, en récupérant des données sur une base de données.
Ensuite, je dois pouvoir, en cliquant un noeud du graphe, afficher des informations de ce noeud sur la même page.

Je voulais savoir si on pouvait inclure du javascript dans les balises "
<a href=""></a>
pour pouvoir afficher le tableau du noeud sur lequel je vais cliquer.
Et si, oui comment pourrais-je le faire dans mon code s'il vous plaît ?

Voici la fonction qui génère le graphe, (avec les balises de liens <a href=""> vides) :
function graph($nb_nodes, $nb_edges, $ego){
$pos_x = 700;
$pos_y = 300;
$rayon = 200;
$degre=2*pi()/$nb_nodes;
$neighbors = array(24,16,17,10,2,14,25);
echo'<?xml version="1.0" encoding="UTF-8" ?>';
echo'<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">';

echo'<svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="1000" height="1000">';
echo'
<g stroke="white" stroke-width="2">';
for($i=1;$i<=$nb_nodes;$i++) {
$pos_xi = $pos_x + $rayon * cos($i*$degre);
$pos_yi = $pos_y + $rayon * sin($i*$degre);
echo '<line y2="'.$pos_yi.'" x2="'.$pos_xi.'" y1="'.$pos_y.'" x1="'.$pos_x.'" />';
}
echo '</g>
<a href ="index.php?act=infos"><g fill="blue" stroke="black" stroke-width="2">
<circle cx="'.$pos_x.'" cy="'.$pos_y.'" r="30" />
</g></a>';
for($j=1;$j<=$nb_nodes;$j++) {
$pos_xj = $pos_x + $rayon * cos($j*$degre);
$pos_yj = $pos_y + $rayon * sin($j*$degre);
echo '<a href=""><g fill="red" stroke="black" stroke-width="1"> <circle cx="'.$pos_xj.'" cy="'.$pos_yj.'" r="20" /> </g></a>';
}
echo '</g>
<g font-family="Arial" font-size="10" font-weight="100" text-anchor="middle">
<text x="'.$pos_x.'" y="'.$pos_y.'">Ego'.$ego.'</text>';
for($k=1;$k<=$nb_nodes;$k++) {
$pos_xk = $pos_x + $rayon * cos($k*$degre);
$pos_yk = $pos_y + $rayon * sin($k*$degre);
echo '<a href=""><text x="'.$pos_xk.'" y="'.$pos_yk.'">Ego '.$neighbors[$k].'</text></a>';
}
echo '</g>
</svg>';
}



Les fonctions qui vont permettent de faire le tableau d'information :
//serviceurl is a function used to run the service (by url) and getting back the result
//$name corresponds to the name of the service to run
//$value corresponds to the parameters of the service
function serviceurl($name,$value) {
//$durl is a defined default variable
global $durl;
$url=$durl.$name."/".$value."";
//We are getting the body content of the result of the RESTful webservice
$body = file_get_contents($url);
//We are treating the result
resultArray($body);
return $body;
}

//resultArray is a function permitting to adapt the result into a array
//$result corresponds on the result of the service request
function resultArray($result){
//We are using the defined separators for the construction of the array
global $separator1;
global $separator2;
$array1=explode($separator1,$result);
echo'<table>';

for($i=0;$i<sizeof($array1)-1;$i++) {
$array2=explode($separator2,$array1[$i]);
echo '<tr>';
for($j=0;$j<sizeof($array2);$j++) {
echo '<td>'.$array2[$j].'</td>';
}
echo '</tr>';
}
echo '</table>';
}
A voir également:

1 réponse

jordane45 Messages postés 38404 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 février 2025 4 732
5 mars 2017 à 19:19
Bonjour,

Pourquoi parler de javascript ? Tous tes codes sont en PHP ... et je ne trouve pas le rapport avec le JS ....

Par contre... sais tu ce que sont les variables $_GET ?
Car je pense que c'est la réponse que tu cherches.......
0
Onizuka95 Messages postés 6 Date d'inscription samedi 4 mars 2017 Statut Membre Dernière intervention 5 mars 2017
5 mars 2017 à 19:28
Merci pour ta réponse,

$_GET ne peux s'utiliser qu'avec des balises <form /> non ???

En faite je me suis peux être mal exprimer. Je souhaite que lorsque je clique sur le lien, une fonction s'éxecute. C'est pour cela que je dois utilisé du javascript.

J'ai vu sur plusieurs sites qu'il n'était pas possible de le faire en php
0
jordane45 Messages postés 38404 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 février 2025 4 732 > Onizuka95 Messages postés 6 Date d'inscription samedi 4 mars 2017 Statut Membre Dernière intervention 5 mars 2017
5 mars 2017 à 19:43
Les variables GET .. sont des variables transmises dans une URL.
par exemple : www.monsite.fr/index.php?toto=trucmachin

Dans cet exemple, la variable toto a pour valeur trucmachin.
Et pour la récupérer ... sur la page index.php .. il suffit d'utiliser :
 $mavariable = !empty($_GET['toto']) ? $_GET['toto'] : NULL;
echo $mavariable; // va afficher  trucmachin
0
Onizuka95 Messages postés 6 Date d'inscription samedi 4 mars 2017 Statut Membre Dernière intervention 5 mars 2017
5 mars 2017 à 20:16
Donc si j'ai bien compris je peux faire :
<a href="index.php?var=infos" rel="nofollow noopener noreferrer" target="_blank"><text x="'.$pos_xk.'" y="'.$pos_yk.'">Ego '.$neighbors[$k].'</text></a>

$mavariable = !empty($_GET['var']) ? $_GET['var'] : NULL;
echo $mavariable; // va afficher infos
0
jordane45 Messages postés 38404 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 février 2025 4 732 > Onizuka95 Messages postés 6 Date d'inscription samedi 4 mars 2017 Statut Membre Dernière intervention 5 mars 2017
5 mars 2017 à 20:23
ben.. oui. c'est le fonctionnement des variables GET.
Y'a plus qu'à tester dans ton graphique...
0