[PHP] Question de n00b : comment ça coexiste le PHP et le JavaScript ?

Question de n00b : comment ça coexiste le PHP et le JavaScript ? [PHP] - PHP - Programmation

Marsh Posté le 04-08-2011 à 21:36:26    

Hello,
 
Bon la réponse va certainement être toute simple et la honte toute sur moi mais tant pis, I need to know.
 
En fait je me mets enfin à intégrer un peu de trucs js et jquery dans mon code PHP mais habituellement c'est des scripts tout fait donc easy life.
 
Mais là au milieu de mon code PHP j'aimerais utiliser un document.getElementById() mais je ne vois pas du tout au niveau syntaxe comment l'intégrer.  
 
Donc voilà le bout de code
 

Code :
  1. $bands=array(avec plein de trucs dedans);
  2. foreach ($bands as $idband)
  3. {
  4. -- là je voudrais tester si une div "truc" existe avant d'en recréer une avec le même nom --
  5. echo '<div id="truc" > HAHA </div>


 
Je me fais bien comprendre ? Quelqu'un pourrait me donner un tuyau ? Merci !


---------------
SHOOT ME AGAIN WEBZINE
Reply

Marsh Posté le 04-08-2011 à 21:36:26   

Reply

Marsh Posté le 04-08-2011 à 21:44:03    

Euh non tu ne peux pas les faire coexister comme ça.
Le javascript est executé côté client, alors que le PHP est executé côté serveur.

 

1/ Le client (navigateur) demande une page à ton serveur
2/ Le serveur génère la page en executant le code PHP. Généralement, le code PHP affiche du code HTML, et éventuellement javascript aussi.
3/ Le client (navigateur) reçoit le code HTML, fait le rendu de la page
4/ Si tu as du javascript dans le code de la page, il l'execute


Message édité par Tirkyth le 04-08-2011 à 21:44:36

---------------
Mon Feedback !
Reply

Marsh Posté le 04-08-2011 à 22:11:26    

Ok je comprends, merci pour cette explication !  
 
Mais si je ne peux pas utiliser le document.GetElementById pour diriger mon script PHP, existe-t-il un équivalent en PHP ?  
 
En gros un script génère des DIV avec chaque fois un nom unique et j'aimerais qu'il vérifie, avant création de cette DIV, qu'elle n'existe pas déjà.  
 
Merci bcp !

Reply

Marsh Posté le 05-08-2011 à 06:11:48    

Pour faire des div avec des nom unique le meilleur moyen, c'est d’incrémenter une variable
 
<div id='div1'></div>
<div id='div2'></div>
<div id='div3'></div>
<div id='div4'></div>
<div id='div5'></div>
...
 
Jte fais pas le code en php, c'est super simple, mais comme ca t'es sur que ta toujours une div, avec un ID unique...

Reply

Marsh Posté le 05-08-2011 à 07:52:28    

au lieu d'utiliser des ID tu utilises des classes c'est plus génériques, et ainsi tu peux facilement matcher N éléments.


---------------
Blablaté par Harko
Reply

Marsh Posté le 05-08-2011 à 16:48:06    

Si les noms ne se suivent pas, à chaque fois que tu crées une div avec un id, tu stockes cet ID dans un tableau. Comme ça, dans ta boucle, avant de créer une div, tu vérifies avec la fonction in_array() que l'ID n'est pas déjà dans le tableau. S'il y est, c'est que t'as déjà créé un e div avec cet ID ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 06-08-2011 à 07:51:15    

Ca c'est une très bonne idée ! Merci beaucoup, c'est la solution que je vais adopter !!  
 
Merci à tous

Reply

Marsh Posté le 06-08-2011 à 07:55:37    

Autrement, si je dois persister avec mon document.GetElementById, on peut simplement considérer que si je ne peux pas compter sur le javascript pour influencer mon code PHP, je peux quand même faire en sorte qu'il influence l'affichage des pages, donc par exemple,  
 
donc si je mets un <script>  
puis un test logique document.getelementbyId()  
puis de l'affichage html
puis un </script>
 
l'affichage html, même s'il est dicté par du PHP, ne devrait pas être pris en compte mmh ?

Reply

Marsh Posté le 06-08-2011 à 10:56:56    

Ben A partir du moment ou tu as compris ce principe simple :  
Serveur -> PHP -> Genère le code HTML -> envoi navigateur -> navigateur lit le code HTML et Javascript et ne connait pas ce qu'il se passe coté serveur.
 
Ben tu as compris au moins une chose :D


---------------
Blablaté par Harko
Reply

Marsh Posté le 12-08-2011 à 21:29:35    

Dawa a écrit :

Autrement, si je dois persister avec mon document.GetElementById, on peut simplement considérer que si je ne peux pas compter sur le javascript pour influencer mon code PHP, je peux quand même faire en sorte qu'il influence l'affichage des pages, donc par exemple,  
 
donc si je mets un <script>  
puis un test logique document.getelementbyId()  
puis de l'affichage html
puis un </script>
 
l'affichage html, même s'il est dicté par du PHP, ne devrait pas être pris en compte mmh ?


 
Faux, le html est le premier document reçu par le navigateur, celui contenant toutes informations à charger pour la page courante (css, images, js...). Le html est donc nécessairement pris en compte.
 
Par contre, tu peux en masquer une partie à l'affichage avec des css (display:none) et l'afficher (display:block) uniquement sur un évènement js (onclick...).
 
Une stratégie plus évoluée est de ne charger que le strict minimum en html, puis d'attendre un évènement js pour lancer une requete AJAX, c'est à dire un appel asynchrone à du php, qui ramene du html/json/blabla et d'intégrer dynamiquement cette réponse dans ton document. Ca évite d'avoir de grosses pages avec plein de contenu pas forcément utilisé. Regarde du côté du framework JQuery, qui est vraiment bien foutu à ce niveau.


---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 12-08-2011 à 21:29:35   

Reply

Marsh Posté le 14-08-2011 à 09:40:50    

CyberDenix a écrit :


 
Faux, le html est le premier document reçu par le navigateur, celui contenant toutes informations à charger pour la page courante (css, images, js...). Le html est donc nécessairement pris en compte.
 
Par contre, tu peux en masquer une partie à l'affichage avec des css (display:none) et l'afficher (display:block) uniquement sur un évènement js (onclick...).
 
Une stratégie plus évoluée est de ne charger que le strict minimum en html, puis d'attendre un évènement js pour lancer une requete AJAX, c'est à dire un appel asynchrone à du php, qui ramene du html/json/blabla et d'intégrer dynamiquement cette réponse dans ton document. Ca évite d'avoir de grosses pages avec plein de contenu pas forcément utilisé. Regarde du côté du framework JQuery, qui est vraiment bien foutu à ce niveau.


 
Cette stratégie est tip-top pour l'accessibilité :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 15-08-2011 à 01:39:03    

CyberDenix a écrit :


 
Faux, le html est le premier document reçu par le navigateur, celui contenant toutes informations à charger pour la page courante (css, images, js...). Le html est donc nécessairement pris en compte.
 
Par contre, tu peux en masquer une partie à l'affichage avec des css (display:none) et l'afficher (display:block) uniquement sur un évènement js (onclick...).
 
Une stratégie plus évoluée est de ne charger que le strict minimum en html, puis d'attendre un évènement js pour lancer une requete AJAX, c'est à dire un appel asynchrone à du php, qui ramene du html/json/blabla et d'intégrer dynamiquement cette réponse dans ton document. Ca évite d'avoir de grosses pages avec plein de contenu pas forcément utilisé. Regarde du côté du framework JQuery, qui est vraiment bien foutu à ce niveau.


Faire de l'AJAX pour faire de l'AJAX c'est souvent contre-production. Le cout d'une requête asynchrone est là, et pour l'utilisateur ces temps d'attentes sont désagréables.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 15-08-2011 à 10:16:24    

MEI a écrit :


Faire de l'AJAX pour faire de l'AJAX c'est souvent contre-production. Le cout d'une requête asynchrone est là, et pour l'utilisateur ces temps d'attentes sont désagréables.


 
+1 et j'insiste, ce n'est pas compatible avec l'accessibilité aux site web pour les personnes souffrant d'un handicap visuel. Un site doit être opérationnel (au moins dans ses fonctions de base) sans JS :o JS/Ajax/Flash... ne doivent être là que pour apporter un + (en ergonomie/amélioration du visuel/optimisations, voire, éventuellement en fonctionnalités).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 18-08-2011 à 13:24:04    

Je vais être dur, mais combien de visiteurs déficients avez-vous jamais eu ? Combien d'aveugles ont déjà conduit une voiture ?  
 
Dans le cadre d'un Intranet, pourquoi pas, pour l'exercice et pour briller dans les dîners en société.
 
Dans le cadre d'Internet, c'est très discutable. Pour un vrai gros site, dont le SEO est vital en terme d'activité, c'est une condition sinequanone.  
La page (correspondante aux éléments communs entre visiteurs) est cachée, et les éléments spécifiques au user (correspondant, pour la plupart des sites, à des données SEO inutiles) sont ajoutés en post production (depuis un cache, si possible).  
Résultat de l'opération : Google télécharge ta page initiale (beaucoup) plus vite, n'a plus le bruit inhérent aux données utilisateur, indexe plus de pages, et te fait monter dans son moteur de recherche.

Message cité 1 fois
Message édité par CyberDenix le 18-08-2011 à 13:25:50

---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 18-08-2011 à 14:15:15    

CyberDenix a écrit :

Je vais être dur, mais combien de visiteurs déficients avez-vous jamais eu ? Combien d'aveugles ont déjà conduit une voiture ?  
 
Dans le cadre d'un Intranet, pourquoi pas, pour l'exercice et pour briller dans les dîners en société.
 
Dans le cadre d'Internet, c'est très discutable. Pour un vrai gros site, dont le SEO est vital en terme d'activité, c'est une condition sinequanone.  
La page (correspondante aux éléments communs entre visiteurs) est cachée, et les éléments spécifiques au user (correspondant, pour la plupart des sites, à des données SEO inutiles) sont ajoutés en post production (depuis un cache, si possible).  
Résultat de l'opération : Google télécharge ta page initiale (beaucoup) plus vite, n'a plus le bruit inhérent aux données utilisateur, indexe plus de pages, et te fait monter dans son moteur de recherche.


 
Pour ta gouverne, il y a, rien qu'en France, entre 8 à 10% de la population souffrance d'un handicap visuel. :o
 
Par ailleurs, c'est en février 2006 (ou 2004, je sais plus) qu'une directive européenne est passée pour que tous les sites des administrations soient de niveau d'accessibilité AA.
 
De plus, faire un site d'accessibilité AA correspond en gros à faire un site bien fait pour le référencement et, qui plus est, respectera les règles de l'art/bonnes pratiques et normes du W3C. Donc y'a pas de surcoût.
 
Enfin, dire qu'on en a rien à cirer de toute une catégorie de personnes, c'est méprisant, tout particulièrement quand il s'agit de personnes handicapées qui subissent déjà pleins de désagréments au quotidien. Le web pourrait justement leur faciliter la vie dans certaines de leurs démarches ou en leur donnant plus d'autonomie (par ex, pouvoir faire ses courses en ligne, une démarche vis-à-vis de la mairie...) mais parce qu'il y a de mauvais web développeurs, ils ne peuvent pas. J'avais regardé rapidement les principales boutiques en lignes : elles ne sont même pas accessibles niveau A!!!
 
Pour plus de détails sur l'accessibilité : http://fr.wikipedia.org/wiki/Accessibilité_du_Web


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 18-08-2011 à 17:35:06    

C'est une norme de complaisance, pas de productivité.
 
C'est pour cette raison que les sites administratifs la respectent au pied de la lettre, et les sites de e-commerce... vaguement.
 
En outre, c'est une norme très contraignante sur le plan de la créativité, car elle suppose que c'est un robot lecteur au format et non un humain ou un robot au format visuel (Comme GoogleBot) qui va lire la page. C'est contraire au mode de lecture de la quasi totalité des humains.
 
Je m'y connais un peu en accessibilité, rassure-toi, mais cette norme passe clairement en dernière position dans mes critères de développement :
1) Ça fonctionne et ça rend service
2) C'est rapide
3) C'est SEO Friendly (backlinks, contenus, célérité, conformité W3C)
4) Ca génère du fric (Somme de 1 à 4)
5) C'est accessible pour les handicapés ou normalisé ISO-pouet

Message cité 1 fois
Message édité par CyberDenix le 18-08-2011 à 17:36:14

---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 19-08-2011 à 00:14:58    

CyberDenix a écrit :

C'est une norme de complaisance, pas de productivité.
 
C'est pour cette raison que les sites administratifs la respectent au pied de la lettre, et les sites de e-commerce... vaguement.
 
En outre, c'est une norme très contraignante sur le plan de la créativité, car elle suppose que c'est un robot lecteur au format et non un humain ou un robot au format visuel (Comme GoogleBot) qui va lire la page. C'est contraire au mode de lecture de la quasi totalité des humains.
 
Je m'y connais un peu en accessibilité, rassure-toi, mais cette norme passe clairement en dernière position dans mes critères de développement :
1) Ça fonctionne et ça rend service
2) C'est rapide
3) C'est SEO Friendly (backlinks, contenus, célérité, conformité W3C)
4) Ca génère du fric (Somme de 1 à 4)
5) C'est accessible pour les handicapés ou normalisé ISO-pouet


Bad news pour toi, si c'est pas accessible, ça respecte pas le W3C... :o
 
En plus, franchement, faire le minimum syndical pour l'accessibilité, c'est comme faire du code propre et commenté, ça ne coute plus cher que si on le fait dans un 2e temps... :spamafote:


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 19-08-2011 à 09:23:19    

MEI a écrit :


Bad news pour toi, si c'est pas accessible, ça respecte pas le W3C... :o
 
En plus, franchement, faire le minimum syndical pour l'accessibilité, c'est comme faire du code propre et commenté, ça ne coute plus cher que si on le fait dans un 2e temps... :spamafote:


 
+1  :jap:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 19-08-2011 à 10:34:41    

Source ?
 
Un site peut être conforme XHTML + CSS sans obtenir la moindre note d'accessibilité style WCAG ou Section 504.
 
Or seule la conformité XHTML + CSS est prise en compte pour le score SEO :
http://googlewebmastercentral.blog [...] -code.html


---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 19-08-2011 à 10:38:16    

Citation :


It is essential that the Web be accessible in order to provide equal access and equal opportunity to people with diverse abilities. Indeed, the UN Convention on the Rights of Persons with Disabilities recognizes access to information and communications technologies, including the Web, as a basic human right.  


 
cf. http://www.w3.org/standards/webdesign/accessibility


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 19-08-2011 à 12:16:28    

La véritable citation, traduite, de Tim Berners Lee est la suivante :
 

Citation :


« Lorsque j'ai créé le web, il y a dix-sept ans, je n'ai demandé à personne la permission. La nouvelle application a été déployée à travers Internet sans que celui-ci ne soit modifié. J'ai essayé, et beaucoup de personnes y travaillent encore, de faire de la technologie web une plateforme à la fois neutre et universelle. Celle-ci ne doit pas discriminer un matériel, un logiciel, un réseau, un langage, une culture, un handicap ou des données spécifiques.
 
Internet devient de plus en plus le support dominant assurant notre connectivité. La neutralité des supports de communication est essentielle à notre société. C'est la base d'une économie de marché compétitive. C'est la base de la démocratie, au travers de laquelle une communauté choisit les actions à engager. C'est la base de la science, qui permet au genre humain de décider où se trouve la vérité. »
 
http://dig.csail.mit.edu/breadcrumbs/node/132
 


 
J'y vois la définition de neutralité du Net et du combat contre le filtrage, mais... chacun voit midi à sa porte, comme on dit !
 
Bref le débat est clos pour moi, l'accessibilité OSEF c'est pas rentable et je me fous éperdument des handicapés qui ne constituent pas ma cible marketing (Comme 99,99% des entreprises dans le monde). :D
 
http://images.forum-auto.com/mesimages/307710/fonsd.gif1..gif


Message édité par CyberDenix le 19-08-2011 à 13:22:17

---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 19-08-2011 à 13:12:10    

:sweat: C'est bien triste cette façon de penser...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed