Recuperer le texte d'un lien?

Invité
Invité n'ayant pas de compte PHPfrance

03 août 2006, 15:27

Bonjour,
Voila je travaille sur un site en php, le site consiste à faire une recherche, le resultat est afficher sous forme de lien. Je souhaite que lorsqu'on clique sur un lien resultat, afficher un popup. Le popup doit contenir des informations que je recupère de ma base de données. Le problème est que je dois recuperer le texte du lien cliquer pour ensuite rechercher dans ma base.

Voilà si vous savez comment recuperer le texte d'un lien, merci de me guider.

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

03 août 2006, 16:49

Ton lien ressemble probablement à ceci

Code : Tout sélectionner

<a href="#" onclick="popup()">Bidule</a>
et ta fonction pour ouvrir une fenêtre à quelque chose comme ça

Code : Tout sélectionner

function popup() { window.open(...); }
Le plus simple est de passer le texte au moment ou tu veux ouvrir ton popup

Code : Tout sélectionner

<a href="#" onclick="popup(this.innerHTML)">Bidule</a>

Code : Tout sélectionner

function popup(texte) { var win = window.open(...); win.texte = texte; }
Et dans ta fenêtre popup tu peux utiliser la variable window.texte ainsi définie :)

Petit nouveau ! | 5 Messages

03 août 2006, 18:47

Merci,
Mais je n'arrive toujours pas à recupérer ma variable. Au faite ma popup ouvre une page(description.php), et c'est dans cette page que j'ai besoin du nom de mon lien pour faire le traitement coté BD.

<A HREF="#" OnClick="ouvre('description.php',this.innerHTML);return false"> mon lien </a>

ensuite dans description.php, je dois exécuter cette requete.

$query = "Select d.nom, d.age, d.descriptif from lesdefuns d where d.nom='$name'";

La variable name doit être le texte du lien cliqué. (window.texte).

Comment acceder à window.texte dans mon code php?

Merci, je debute tout de juste.

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

03 août 2006, 19:00

Je pensais que c'était du javascript que tu voulais faire, pas du PHP ;)

Il ne faut pas simplement appeler "description.php", mais "description.php?txt=montexte".

Au lieu de ouvre('description.php',this.innerHTML), reprends ton ancien ouvre() et appelle ouvre('description.php?txt='+encodeURIComponent(this.innerHTML)).

Dans ta page description.php, tu auras accès à $_GET['txt'] qui correspondra au texte de ton lien.

Petit nouveau ! | 5 Messages

04 août 2006, 14:01

Maintenant j'essais reciperer mon texte, quand je l'affiche avec echo, j'ai la bonne valeur. En revanche lorsque je fais une recherche avec dans ma base de données, l'affichage ne produit rien. Je ne comprend pas du tout.
$name= $_GET['texte'];
	 echo $name; //m'affiche bien le texte "marie"

$query = "SELECT nom, age, descriptif from bidule d where d.Nom='$name'";

$result = mysql_query($query) or die ("Connexion requete impossible"); 
	$location = @mysql_fetch_array($result);
   echo $location["nom"]."<br />".$location["age"]." ans "."<br />".$location["descriptif"]."<br />";  	//J'obtien comme affichage 'age'.
Et pourtant si je remplace $name par 'marie' dans ma requête, tout est parfait.

Est ce que c'est le navigateur qui n'arrive pas à l'afficher? ou est ce que ma requête retourne vide (non je l'ai verifier, le tableau location n'est pas vide).

Merci

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

04 août 2006, 14:30

Ajoute déjà un print_r, on y verra plus clair :
$name= $_GET['texte'];
echo $name; //m'affiche bien le texte "marie"

$query = "SELECT nom, age, descriptif from bidule d where d.Nom='$name'";

$result = mysql_query($query) or die ("Connexion requete impossible");
$location = @mysql_fetch_array($result);
print_r($location); // pour savoir exactement où on en est
echo $location["nom"]."<br />".$location["age"]." ans "."<br />".$location["descriptif"]."<br />";
//J'obtien comme affichage 'age'.

Petit nouveau ! | 5 Messages

04 août 2006, 15:09

J'ai essayé mais toujours rien, affichage vide.

Eléphanteau du PHP | 38 Messages

04 août 2006, 15:47

Question bete : est ce que 'marie' est bien dans ta base ?

j'ai souvent galerer au niveau de l'interfacage entre requete SQL et PHP. Du coup, je fais toujours un echo de ma requete SQL
echo $query; 
Et ensuite sur mon serveur, grace a easyPHP depuis la console d'administration de la base, je test ma requete SQL.

Comme ca on sait un peu plus precisement d'ou viens le probleme. Et souvent c'est la requete SQL qui ne retourne aucun resultat... ce qui semble etre ton cas.

Petit nouveau ! | 5 Messages

07 août 2006, 10:43

Merci,
Maintenant j'ai compris le problème, le texte de mon lien contient un espace à la fin, du coup lorsque je fais ma requête il ne trouve pas. Il faut donc que j'élimine cette espace avant de faire quoi que ce soit.
$name=$_GET['texte'];
  	$query = "SELECT nom, age, descriptif from MyTable d where d.Nom='$name'";
$result = mysql_query($query) 
$location = @mysql_fetch_array($result);
echo $query;
et le resultat de l'affichage donne:

Code : Tout sélectionner

SELECT nom, age, descriptif from MyTable d where d.Nom='Dupond Marie'
Je me demande pourquoi il balance du blanc à la fin que je n'arrive pas à supprimer. J'ai essayé les fonctions chop ($name) et rtrim($name) mais rien.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

07 août 2006, 12:05

modération : binbin, utilise plutôt les balises
 et [code] plutôt que des couleurs pour poster du code ;)

merci d'avance

PS : je modifie tes anciens messages ;)[/color]
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 5 Messages

07 août 2006, 15:33

C'est pas propore ce que j'ai fait, mais bon ca marche enfin.