IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] Résolution d'ecran OK mais code pas parfaite


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Par défaut [PHP-JS] Résolution d'ecran OK mais code pas parfaite
    Bonjour,

    Avec le bout de code plus bas j'arrive a appliquer une résolution = a l'ecran du visiteur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <script type="text/javascript">
    <!-- debut
    function resolution() {
    document.location="<?php echo $_SERVER['PHP_SELF']; ?>?<?php echo $_SERVER['QUERY_STRING']; ?>&width="+screen.width+"&height="+screen.height;
    }
    // fin -->
    </script>
    </head>
    <?php
     
    if(!isset($_GET['width']) and !isset($_GET['height'])){
    echo '<body onload="resolution();">';
    }else{
    echo '<body>';
    }
     
    $height = $_GET['height'];
    $width = $_GET['width'];
    $resolution = "$width$height";
     
    // appliquer au template
    //$templatewidth ="1024";
    $templatewidth =$width;
    ......
    ..
    ?>

    Tous fonctionne bien mais, quand je veut éditer un article sur joomla je me retrouve rediriger a la page d'accueil.

    Ma question est est-il possible de récupérer tout simplement la résolution width du visiteur sans pour autant rediriger le navigateur a chaque fois.

    Merci d'avance

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,

    tu demande toi même de rediriger

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.location="<?php echo $_SERVER['PHP_SELF']; ?>

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Par défaut
    Bonjour,

    je sais, mais y a t-il une solution pour récupérer le width sans rediriger ?

    Merci

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    et ceci cela fonctionne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <script type="text/javascript">
    <!-- debut
    function resolution() {
    <?php $width =  ?>+screen.width,
    <?php $height = ?>+screen.height
    }
    // fin -->
    </script>

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Par défaut
    Bonjour,

    Voila j'ai essayer votre méthode elle est pas mal mais ne fonctionne pas donc j'ai légèrement modifier le code de cette façon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <script>
    var width_a = screen.width;
    </script>
    <?
    $width_a = "<script>document.write(width_a);</script>";
    $templatewidth = $width_a;
    Donc pour vérifier avec un echo $width_a; il m'affiche le resultat exact "1280" de mon ecran mais le $templatewidth ne réagi pas, donc j'ai essayer un echo $templatewidth; pour voir s'il accepte $width_a donc il m'affiche le resultat exact "1280" de mon ecran mais, ce la ne fonctionne toujours pas

    donc j'ai essayer $width_a = "1280"; est cela fonctionne tres bien.

    Voila c'est bizarre je suis perdu

    Merci

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    et simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $templatewidth =  "<script>screen.widht</script>";

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Par défaut
    Bonjour,

    sinon comment le faire a partir du fichier CSS car je ne sais pas le faire ?

    Merci

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Par défaut
    oui, ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script>
    var width_a = screen.width;
    </script>
    <?
    $width_a = "<script>document.write(width_a);</script>";
    echo $width_a;
    ?>
    ca t'affiche bien 1280 ou 1024 ou ce que tu as comme resolution d'ecran..

    mais c'est cette ligne, qui te l'ecrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script>document.write(width_a);</script>
    le php est executé avant !

    en gros tu demande a php d'ecrire du javascript dans ta page html et javascript ecrit le screen.width !

    mais php n'a pas acces a la variable javascript meme !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script>
    var width_a = screen.width;
    </script>
    <?php
    $width_a = "<script>document.write(width_a);</script>";
    echo htmlentities($width_a);
    ?>
     
    <script>document.write(width_a);</script>
    si ton $width_a contient bien "1280", le htmlentities que j'ai rajouté ne devrait avoir aucun effet.. fait le test !!

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Par défaut
    Bonjour,

    Oui vous avez raison, mais alors comment appliquer un "100%" a $templatewidth ?

    Je ne sais plus quoi faire.

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Par défaut
    bah la il te faudrait un specialiste de joomla, ou alors faire un template et un css elastique.. cherche sur google.. elastic css.. tu devrais avoir plein de reponses

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Par défaut
    Bonjour,

    Voila j'ai trouver la solution avec la méthode cookie et voici le code pour ce qui ont le même problème que moi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <script language="javascript">
    <!--
    function writeCookie()
    {
     var today = new Date();
     var the_date = new Date("December 31, 2023");
     var the_cookie_date = the_date.toGMTString();
     var the_cookie = "users_res="+ screen.width +"x"+ screen.height;
     var the_cookie = the_cookie + ";expires=" + the_cookie_date;
     document.cookie=the_cookie
     if (document.cookie){ 
            location = '<?=$GLOBALS[callget_res_page_name]?>';
     }
    }
    function checkRes(width, height) {
            if(width != screen.width || height != screen.height) {
                    writeCookie();
            } else {
                    return true;
            }
    }
    //-->
    </script>
    <?
    if(isset($HTTP_COOKIE_VARS["users_res"])) {
            $screen_res = $HTTP_COOKIE_VARS["users_res"];
            $screen_res_tmp = explode("x", $screen_res);
            $screen_width = $screen_res_tmp[0];
            $screen_height = $screen_res_tmp[1];
            ?>
            <script language="javascript">
            <!--
            checkRes(<?=$screen_width?>, <?=$screen_height?>);
            //-->
            </script>
            <?
    }
    else
    {
    ?>
    <script language="javascript">
    <!--
    writeCookie();
    //-->
    </script>
    <?
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $templatewidth =$screen_width;
    Compatible IE6, IE7,IE8 FF.

    1000 Merci a toutes les personnes qui mon aider.

    Encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] PHP pas éxécuté mais code affiché
    Par devroot dans le forum AJAX
    Réponses: 2
    Dernier message: 08/06/2015, 15h55
  2. Réponses: 4
    Dernier message: 27/01/2006, 15h28
  3. [PHP-JS] Probleme de javascript dans un code php
    Par stomerfull dans le forum Langage
    Réponses: 3
    Dernier message: 23/01/2006, 09h33
  4. [PHP-JS] Probleme de javascript dans un code php
    Par stomerfull dans le forum Langage
    Réponses: 20
    Dernier message: 12/01/2006, 13h41
  5. [PHP et PostgreSQL] erreur de pg_exec mais requete valide
    Par guipom dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 25/03/2005, 19h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo