Jump to content

Faire communiquer une variable en php et javascript


Recommended Posts

Pour un meilleur confort visuel, je cherche à detecter la largeur du navigateur du l'internaute qui se connecte à mon site, pour ensuite afficher un nombre d'article par page ( pour un site de commerce ) en rapport.

la fonction JS :

var largeur;
largeur = screen . width;

Mais comment récuperer cette variable en variable php ?

J'aimerais que "var largeur" soit récupérée dans une variable php du type $largeur

Une solution ? ( de plus, si il existe une solution sans JS je suis preneur aussi )

merci

Link to post
Share on other sites

Attention à ne pas confondre largeur d'écran et largeur du navigateur !

En plus, même en supposant que l'on navigue plein écran, comment peut-on être sur que le visiteur ne navigue pas avec un bandeau latéral ?

Link to post
Share on other sites

Je suis bien d'accord avec toi.

Mais dans mon cas particulier, cela n'est pas trop important :

En gros:

Je fais un site de e-commerce ( Rayon de soleil .Pour l'instant , la plupart des articles sont dans la catégorie "prochainement") qui va afficher un certain nombre d'articles par pages.

Pour l'instant, j'ai défini ce nombre a 12 pour qu'il soit divisible par 2, 3 et 4 :

Sur un navigateur en 800x600 : 2 articles par lignes, 6 lignes

Sur un navigateur en 1024 : 3 articles par lignes, 4 lignes

Sur un navigateur en 1280 : 4 articles par lignes, 3 lignes

Le but étant que chaque ligne soit "complete", pas de trous

Tout cela sans avoir besoin de JS ou autre, ni meme de connaitre la taille du navigateur ( Div en % et cellules en float )

Si l'internaute redimensionne son navigateur, cela va quand meme s'adapter sans problemes, car a chaque fois, chaque ligne sera complete ( exemple: un navigateur en 1024 redimensionné ou avec une colone favoris a gauche = 2 articles par lignes, 6 lignes ).

Mais comme je suis très perfectionniste, j'ai remarqué que sur certains grands écrans le nombre d'articles affichés par ligne est 5, donc avec 12 articles par pages, cela fait moins joli ( 5 la premiere ligne, 4 la deuxieme )

La solution ? trouver un chiffre divisible par 2,3,4 et 5... mais le chiffre minimum dans ce cas est 60 , cela fait beaucoup trop d'articles par pages.

D'ou mon idée de gerer aussi la résolution de l'affichage du navigateur pour essayer de trouver une solution intermédiaire pour rendre le site le plus parfait possible :)

Edited by Chark
Link to post
Share on other sites

Le plus pratique, insérer une image invisible en js (qui contiendra l'id de session) qui enverra la taille de l'écran et qui sera récupérée par le serveur pour les pages suivantes...

Link to post
Share on other sites

Ca c'est une idée oui !

Ou encore inscrire la taille du navigateur dans un fichier texte récupéré par php ( avec l'id de session ).. mais JS sait faire ca ( écrire/créer un fichier texte ) ?

Link to post
Share on other sites

il serait où le fichier texte ?

car pour une question de sécurité, en dehors d'un formulaire d'upload, le navigateur ne peut avoir accès aux fichiers locaux et js ne peut écrire sur le serveur

Link to post
Share on other sites

Ou plus simplement (en oubliant carrément le JS et le traitement dynamique) :

Tu gères chaque zone en DIV (et non plus en case de tableau), et tu attribues un style 'float: left' à chacun. De cette manière, quelle que soit la résolution d'écran de l'utilisateur, les blocs s'adapteront à l'espace disponible.

Link to post
Share on other sites
Tu gères chaque zone en DIV (et non plus en case de tableau), et tu attribues un style 'float: left' à chacun. De cette manière, quelle que soit la résolution d'écran de l'utilisateur, les blocs s'adapteront à l'espace disponible.

Comme je l'ai dit précédemment, c'est déja exactement ce que je fais...

Mon problème se situant sur le nombre d'articles à afficher, non pas sur leur positions

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...