CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Insérer css et javascipt via javascript?

Cainzer
Cainzer
Niveau 10
04 mars 2013 à 19:54:29

:salut:

Je pense que le titre n'est pas très explicite, voir bizarre.

Voilà donc la situation détaillée : j'ai fais un fichier en PHP dans lequel se trouve le header. Dans celui-ci il y a bien sûr le doctype et la balise <head> entre autres.
Le problème est que je fais un include en PHP sur ce fichier dans la page test.php par exemple. Jusque là tout va bien. Mais en fait, je voudrais pouvoir appliquer une feuille de style CSS et un script js particuliers en fonction des pages.
En gros, sur le fichier test.php je veux faire appel aux fichiers script1.js et style1.css, tandis que dans le fichier test2.php je veux faire appel aux fichiers script1.js et style2.css. Pour cela je suis bien conscient qu'il faut les appeler dans la balise <head> qui se trouve dans mon include.

Je ne vois pas du tout comment faire :( Enfin... j'ai bien trouvé une solution temporaire, c'est à dire recopier le header dans chaque fichier. Mais ce n'est pas pratique du tout parce que si je veux changer le header je dois modifier tous mes fichiers !

J'ai entendu dire il y a longtemps qu'on pouvait modifier la feuille de style grâce à du javascript, et peut être même appeler du javascript après le head. Sauriez vous comment faire ? Ou auriez vous une autre solution à me proposer :svp: ?

Merci d'avance !

Tiddo
Tiddo
Niveau 10
04 mars 2013 à 20:10:41

Je pense que la solution la plus simple reste de se baser sur les variables $_SERVER['SCRIPT_NAME'] ou $_SERVER['PHP_SELF'] ou bien encore $_SERVER['REQUEST_URI'].

Cainzer
Cainzer
Niveau 10
04 mars 2013 à 20:36:07

J'ai regardé le doc mais je comprend pas bien comment ces variables pourraient me servir. Pourrais-je avoir quelques explications supplémentaires ?

Tiddo
Tiddo
Niveau 10
04 mars 2013 à 22:31:26

Elles te permettent de récupérer le nom du fichier courant. Tu auras juste à faire une structure de contrôle pour inclure tes différentes CSS et fichiers JS.

A mon avis, tu peux même gérer ça au niveau de ton include actuel. Tu peux nous copier ton code sur Pastebin pour voir ?

deepblue
deepblue
Niveau 16
05 mars 2013 à 00:34:39

Tu as utiliser un pattern decorator ou pas ?

vava740
vava740
Niveau 10
05 mars 2013 à 10:42:24

Sinon tu peux définir un array de scripts et de styles avant d'inclure le header, et dans le header tu fais une boucle sur les scripts / styles pour les ajouter dynamiquement.

Cainzer
Cainzer
Niveau 10
05 mars 2013 à 12:45:51

Bon je n'ai utilisé aucune de vos méthodes mais j'ai résolu mon problème parce que vos commentaires m'ont donné une idée.
J'explique. Dans mon fichier test ou je recopiais le header, en gros j'avais mis une condition qui s'avère être "si il y a un fichier js alors on le met" et pareil pour le CSS. Je sais pas pourquoi j'y ai pas pensé plus tôt. Si je la met dans mon header normal ça fonctionne nickel sur tous les autres fichiers ou je ne veux pas ces feuilles de style puisque la condition n'est pas rempli est il n'y a donc pas "d'inclusion".
Je ne sais pas si c'est bien clair mais en tout cas le problème est résolu.

Sinon je me pose une autre question, si celle-ci n'a pas de réponse ici je chercherais d'avantage sur google ou je créerais un nouveau topic.
En fait je voudrais que l'utilisateur mette son propre fond d'écran et que le site s'en souvienne.
J'ai d'abord cru que je pouvais récupéré l'adresse exacte du fichier sur le dossier de l'utilisateur en faisant un parcourir mais j'ai appris qu'on ne pouvait pas. En fait je voulais créé un cookie qui retiendrait l'adresse sur le DD de l'internaute et qui irait la chercher... enfin bon c'est pas possible.
Une autre solution consisterait à enregistrer l'image sur le serveur. Mais il n'y a pas d'espace membre. Donc je devrais retenir l'ip du visiteur. Mais ça me fait un peu chier parce que ça sera des d'images dimension fond d'écran donc ça pèsera lourd. Surtout que l'ip est variable alors ça me parait être une solution pourrie.
Auriez vous une piste à me proposer ? Et en quelle(s) langage(s) le faire ?
En ce qui me concerne je connais un peu le javascript et je connais plutôt bien le PHP. Je ne sais pas si c'est possible, mais évitez s'il vous plait de me conseiller du Jquery ou du Ajax, sauf si vous avez un très bon tuto avec vous :)

:merci: d'avance !

Tiddo
Tiddo
Niveau 10
05 mars 2013 à 12:57:08

Pas besoin d'être connecté pour utiliser les cookies.

Tiddo
Tiddo
Niveau 10
05 mars 2013 à 12:58:30

Ps: tu connais plutôt bien le php et tu ne connais pas la globale $_SERVER ? :-(

Tu connais un peu le JavaScript mais tu ne veux pas de jQuery ou d'AJAX ? :-(

WHAT...

Cainzer
Cainzer
Niveau 10
05 mars 2013 à 15:54:58

Tiddo,
"Ps: tu connais plutôt bien le php et tu ne connais pas la globale $_SERVER ?"
:d) Je connaissais pas pour cette utilité là. Après je suis pas un expert du PHP, mais je connais suffisamment de choses pour arriver à faire des sites :ok:
"Tu connais un peu le JavaScript mais tu ne veux pas de jQuery ou d'AJAX ?"
:d) Je n'y suis pas hostile mais comme je ne sais pas bien les manipuler, donnez moi un tuto si vous m'embarquez sur cette piste. Je veux dire, ne me donnez pas une solution qui me perdrait plus que je le suis déjà :)
Au risque de paraitre désagréable, je me passerais bien de ce genre de réflexion.
"Pas besoin d'être connecté pour utiliser les cookies. "
:d) Oui bien sûr, la preuve c'est que j'en utilise une quantité sans avoir d'espace membre. Mais d'après ce que j'ai lu sur internet, pour ce que je veux faire, les cookies ne sont pas utiles. Mais si vous avez une idée faites moi signe :)

vava740
vava740
Niveau 10
05 mars 2013 à 16:45:58

Tu ne pourras pas récupérer le fichier directement sur le PC du client (sauf pour l'uploader), tu devras donc forcément l'uploader sur ton serveur, ou déléguer cette tâche à un service d'hébergement spécialisé.

Tu peux faire ça soit directement via PHP (l'utilisateur upload le fichier sur ton serveur et tu le transmet à un site spécialisé sans conserver le fichier, tu récupère juste le lien que tu stocke dans un cookie, ou même en demandant à l'utilisateur d'uploader lui-même l'image sur un autre site et de te fournir uniquement le lien.

Cainzer
Cainzer
Niveau 10
05 mars 2013 à 17:32:37

vava740,
Merci bien pour la deuxième solution je n'y avais pas pensé ! Je vais faire comme ça, ça me parait être une bonne idée. Par contre tous les hébergeurs le font ? Parce que ça m'étonne qu'on puisse faire ça comme ça :p)

Tiddo
Tiddo
Niveau 10
05 mars 2013 à 17:39:34

J'imagine qu'il faut se baser sur l'API d'un hébergeur. Imgur propose ce genre de solutions.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment