RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 lien html, js et variable php

Forum : PHP - BDD
Sous Catégorie : BDD
Type du sujet : Sujet Normale
FAQ : FAQ PHP - BDD

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGES : [1] [2]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM PHP - BDD

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
keran
Membre newbie
Avatar de keran
Inscrit : 23/10/2005
Messages : 44
Message
#78135
Posté le 23/10/05 à 03:07
bonjour

j'ai un soucis avec un lien html destiné à afficher une info-bulle tirée d'une base.je le code comme çà:


<a class="bulle" href="javascript:void(0);" onclick="AffBulle('<?php $ref='altere';$res=mysql_db_query($db,"select * from dico where mot='$ref'");$tempo = mysql_fetch_array($res); echo $tempo[2];?>')">altere</a>


l'erreur affichée au clic est que l'objet ne gére pas cette propriété.erreur qui découle d'un js dont voiçi le code:


var posX=0;posY=0; var xOffset=10;yOffset=10; function AffBulle(texte) { contenu="<table class='tab'><tr><td align='right'><table class='tab2'><tr><td>"+texte+"</td></tr></table><a href='javascript:void(0)' onclick='CacherBulle()'><i>Fermer</i></a></td></tr></table>&nbsp;"; var finalPosX=posX-xOffset; if (document.layers) { document.layers["bulle"].document.write(contenu); document.layers["bulle"].document.close(); document.layers["bulle"].top=posY+yOffset; document.layers["bulle"].left=finalPosX; document.layers["bulle"].visibility="show"; } if (document.all) { bulle.innerHTML=contenu; document.all["bulle"].style.top=posY+yOffset; document.all["bulle"].style.left=finalPosX; document.all["bulle"].style.visibility="visible"; } else if (document.getElementById) { document.getElementById("bulle").innerHTML=contenu; document.getElementById("bulle").style.top=posY+yOffset; document.getElementById("bulle").style.left=finalPosX; document.getElementById("bulle").style.visibility="visible"; } } function PositionSouris(e) { if (document.all) { posX=event.x+document.body.scrollLeft; posY=event.y+document.body.scrollTop; } else { posX=e.pageX; posY=e.pageY; } } function CacherBulle() { if (document.layers) {document.layers["bulle"].visibility="hide";} if (document.all) { document.all["bulle"].style.visibility="hidden"; } else if (document.getElementById){ document.getElementById("bulle").style.visibility="hidden"; } } if (document.layers) { window.captureEvents(Event.MOUSEMOVE);window.onMouseMove=PositionSouris; document.write("<LAYER name='bulle' top=0 left=0 visibility='hide'></LAYER>"); } if (document.all) { document.write("<DIV id='bulle' style='position:absolute;top:0;left:0;visibility:hidden;z-index:50;'></DIV>"); document.onmousemove=PositionSouris; } else if (document.getElementById) { document.onmousemove=PositionSouris; document.write("<DIV id='bulle' style='position:absolute;top:0;left:0;visibility:hidden;z-index:50;'></DIV>"); }


là non plus je ne vois pas l'erreur.en fait, je me suis servi de ce code sans php et il fonctionnait. Smiley

quand je passe le php, le js et le script de connection au validateur de webexpert il ne trouve aucune erreur nulle part.seulement quand je clique sur le lien il me retourne ceçi:

erreur de script: code 0
ligne 53(le lien du début)
) attendu.

j'ai aussi vérifier ma base, au cas ou, pas de pbs.si quelqu'un comprend quelque chose, je suis preneur.
__________________________
ils ne savaient pas que c'était impossible,alors ils l'ont fait.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

windu
Membre du club
Avatar de windu
Inscrit : 08/07/2004
Messages : 691
Message
#78243
Posté le 23/10/05 à 23:26
Salut,
ALors j'ai aps testé ton code (je suis pas sur mon PC en ce moment)... Mais je peux te donner un conseil : Sépare le code PHP du code JS!!!

Par exemple, exécute tout le code PHP AVANT cet lien, et ne mets dans la partie JS que la variable qui t'intéresse ($tempo[2] semblerait-il...)

Tu devrais obtenir quelque chose comme ceci:

<?php $ref='altere'; $res=mysql_db_query($db,"select * from dico where mot='$ref'"); $tempo = mysql_fetch_array($res); ?> <a class="bulle" href="javascript:void(0);" onclick="AffBulle('<?php echo $tempo[2]; ?>')">altere</a>


J'ai pas testé mais ca devrait déjà etre plus propre (sans garantie du résultat...). Je me demande ausis si les simple guillemets autour des balises de code PHP ne gènent pas son exécution? Dans ce cas, fais l'inverse: génère tout le lien à partir de code PHP
__________________________
FAQ PHP
Image

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

MisterV
Membre du club
Avatar de MisterV
Inscrit : 21/05/2004
Messages : 1603
Message
#78261
Posté le 24/10/05 à 11:05
Salut,

Déjà, je te conseil de suivre la méthode de Windu. Ca donne un code nettement plus propre que ton code.

D'ailleur ton code donne une impression que je n'ai pas trop : On dirait que tu mélange JS et PHP.
On a l'impression que tu n'as pas tout a fait compris le fonctionnement du php.

Le php Construit ta page HTML !! Donc il va générer ton code HTML, et ton code JavaScript.
C'est ce code, généré par PHP, qui va être ensuite executé sur le navigateur du client.

Donc c'est inutile de tasser tout ton code php dans ta balise <a>. De toute facon la seule chose qui restera au finale dans ta page c'est ce que tu aura écrit avec la commande echo ou print.

Donc au final, si tu as des problèmes de JavaScript, il ne faut pas regarder le PHP mais le JavaScript.
Donc tu ouvre ton navigateur, tu va sur la page ou tu as le problème, et tu affiche le code source de ta page. La tu ne verra plus de php, mais seulement le HTML généré (avec le JavaScript généré dedans évidemment).

Si Le javascript généré ne correspond pas a ce que tu attendais, c'est que ton php ne fonctionne pas bien. Par contre si le JavaScript est bien ce que tu voulais, et bien il faut que tu corrige ton code JavaScript.

Donc fais le test, et dis nous le résultat.
Si au final c'est le JavaScript qui merde, ne nous montre plus de php !!

Si par contre c'est le php qui merde, ne nous parle plus d'erreurs JavaScript, mais présente nous plutôt le code généré par php.

++
__________________________
GGrrrrrrrrr.............

Comment poser une question ?

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

MisterV
Membre du club
Avatar de MisterV
Inscrit : 21/05/2004
Messages : 1603
Message
#78262
Posté le 24/10/05 à 11:34
Une autre petite remarque au passage :

Le code de ton lien est affreux a mon gout.

Tu ne devrais jamais avoir de JavaScript directement dans une page HTML !! Le JavaScript dans le fichiers JavaScript, et le HTML dans le fichiers HTML. Chacun sa place et tout le monde est heureux.

Donc ton lien devrait être comme ca :

<a class="bulle" href="page.html" id="un_nom">altere</a>


Après, il te suffit d'utiliser un peu de gestion d'évennements et un peu de DOM en JavaScript pour repérer dans ta page le lien avec l'id "un_nom" et de lui attribuer l'évenements 'onclick' dynamiquement.

évidement, si t'es pas habitué, tu peu simplifier, en utilisant l'attribut onclick, mais D'une, il faut que ton lien fonctionne si le JavaScript est pas actif (au pire des cas il doit amener à une page indiquant que le JavaScript n'étant pas activé la fonction n'est pas possible).
Et de deux, il faut que tu es le moins possible de JavaScript dans tes pages.

Un code un peu moins radical que précédemment :

<a class="bulle" href="page.html" onclick="return action(param)">altere</a>



++
__________________________
GGrrrrrrrrr.............

Comment poser une question ?

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

keran
Membre newbie
Avatar de keran
Inscrit : 23/10/2005
Messages : 44
Message
#78277
Posté le 24/10/05 à 12:42
bonjour

merci pour vos réponses et conseils.

[quote]On a l'impression que tu n'as pas tout a fait compris le fonctionnement du php.[/quote]

c'est clair, je débute, à peine deux mois de pratique...

ce code est issu d'un magazine(.net) et c'est signé jean-paul mesters, un crack de la prog, alors j'ai tout pris au pied de la lettre.

je vais tester tout çà, à plus tard pour le résultat.
__________________________
ils ne savaient pas que c'était impossible,alors ils l'ont fait.

ERREUR BBCODE SUR CE MESSAGE :
- La valeur de la balise "quote" n'est pas correcte !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

keran
Membre newbie
Avatar de keran
Inscrit : 23/10/2005
Messages : 44
Message
#78303
Posté le 24/10/05 à 15:54
re

résolu, c'était le script de connection à la base.à ce sujet pourquoi ceci


<?php $MySQL_host = "localhost"; $MySQL_user = "root"; $MySQL_passw = ""; $db="docmemo"; $lk=@mysql_connect("$MySQL_host","$MySQL_user","$MySQL_passw") ?>


est différent de ceci


<?php mysql_connect("localhost", "root", ""); mysql_select_db("docmemo"); ?>


les infos sont les mêmes, non?les variables du premier contiennent les mêmes valeurs.ou ce situe le pb du second, tiré de php5 de micro-application.

en tout cas je vais suivre vos conseils pour la séparation des codes.
__________________________
ils ne savaient pas que c'était impossible,alors ils l'ont fait.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

windu
Membre du club
Avatar de windu
Inscrit : 08/07/2004
Messages : 691
Message
#78306
Posté le 24/10/05 à 16:19
Je suis jamais sûr pour ce qui est des connexions à MySQL (à force d'utiliser des classes on en oublie le fonctionnement des fonctions de base Smiley )! mais dans le deuxième exemple, il manque l'id de connexion (qui se nomme $lk dans le premier exemple...)!
Cf. ce lien pour la fonction mysql_connect, et celui-ci pour mylsq_select_db
__________________________
FAQ PHP
Image

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

MisterV
Membre du club
Avatar de MisterV
Inscrit : 21/05/2004
Messages : 1603
Message
#78311
Posté le 24/10/05 à 17:08
Salut,

Pour tes deux exemples, les deux marchent. seulement le deuxième est moins propre.

Qui a t'il de mieux dans le premier ?

Les variables contenant les valeurs :
C'est toujours mieux de placer les valeurs dans des variables (en début de fichier par exemple) et ensuite d'utiliser les variables.
Pourquoi ?
1) En cas de changement de la valeur, tu n'as a la changé qu'une fois dans ton fichier. Si tu utilise la valeur a pleins d'endroits, c'est pratique (pour ton exemple, si tu fais plusieur connection à la base de données).
2) Le nom de variable sera peut-être nettement plus significatif que la valeur elle même. Si ta valeur est un nombre par exemple, il sera plus agréable de voir :
fonction ($nombre_de_bannanes);
que
fonction (25);


Utilisation de l'identifiant de connexion

Quand tu établis une connexion MySQL, la fonction de connection retourne un identifiant de connexion. Cet identifiant permet de savoir de quel connexion MySQL tu parle. C'est très utile si tu utilise plusieurs connexions.
Dans le premier de tes exemple, tu récupère l'identifiant de connexion dans la variable $lk
Tu pourra ensuite l'utiliser pour définir la base de données sur laquelle tu travail :
$db = mysql_select_db('docmemo', $lk);

Si tu ne spécifie pas l'identifiant de connexion dans la fonction mysql_select_db(), php va chercher a trouver une connexion déjà établie à MySQL, et s'il en trouve pas, il va chercher d'établir une connexion avec MySQL en utilisant les parametre :
login : root
pass : rien

Donc T'as des chance qu'il trouve pas ta connexion si t'utilise pas l'identifiant de connexion, ou si tu as plusieurs connexion, il peut se tromper de connexion.... la merde quoi.


Donc voila, je pense que ca te fera déjà avancer dans la comprehenssion de php. Si t'as pas tout compris, demande, on t'expliquera plus Smiley

++
__________________________
GGrrrrrrrrr.............

Comment poser une question ?

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

keran
Membre newbie
Avatar de keran
Inscrit : 23/10/2005
Messages : 44
Message
#78313
Posté le 24/10/05 à 17:20
c'est limpide, plus que dans le bouquin cité.merci à tous les deux.A+ au détour d'un prochain topic.
__________________________
ils ne savaient pas que c'était impossible,alors ils l'ont fait.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

lain82
Membre du club
Avatar de lain82
Inscrit : 25/04/2004
Messages : 1177
Message
#78327
Posté le 24/10/05 à 19:30
Ps: je te répond à pkoi on met les valeurs de connection en dehors de la fonction. En cas d'erreur, il n'y a aucun moyen que le visiteur vois tes variables. C'est une question de sécurité princiapelement.
__________________________
A tous les membres, dite non à la (drogue...) sms-mania !

Avant de poster, vérifiez si la réponse n'est pas dans la FAQ ou un tutorial.

Je suis actuellement Image sur MSN

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM PHP - BDD



    PAGES : [1] [2]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.