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 ? CSS ? Les deux ?


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services à domicile

    Informations forums :
    Inscription : Septembre 2007
    Messages : 14
    Par défaut PHP ? CSS ? Les deux ?
    Bonjour a tous et désolé pour le titre pas très explicite...

    Je vais essayer de faire mieux pour vous exposer mon soucis.

    Je travaille actuellement sur la refonte d'un site contenant de très très nombreux affichages du type :
    titre -> donnée
    Actuellement construit en <table> j'en profite pour le passer en <div>
    J'ai donc des blocs du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div style="float : left">Titre</div>
    <div style="float : left"><input name=date value="data"></div>
    <div style="clear : both;"></div>
    Et vu qu'ils ont tous la même structure je me suis dis : pourquoi je mettrais pas ça en fonction ?

    Un fonction qui ferais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function afficher($gauche, $droite){
       echo '<div style="float : left" class="colGauche">'.$gauhe.'</div>
               <div style="float : left" class="colDroite">'.$droite.'</div>
               <div style="clear : both;"></div>'
    }
    Je gagne un maximum de lignes de codage grâce a ça.

    En revanche je me retrouve a devoir mettre toutes mes "données HTML" dans des chaines qui correspondent à la partie $droite.
    Dès fois des <select> ou bien d'autres choses mangeuses d'espace (bien que la plupart du temps cela se résume à un <input>.

    J'y suis venu quand sur le premier fichier que j'ai traité, je me suis retrouvé avec 10 enchainements comme le premier bloc que je vous ai montré.

    Mais mon fichier ne ressemble plus du tout à un fichier HTML, mais plutot à une suite de code PHP.

    Bref, cette manière de coder est-elle adéquate ? Ou bien je fais complètement fausse route ?

    Merci d'avance de vos réponses

  2. #2
    Membre éprouvé Avatar de TiEuAM
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 75
    Par défaut
    Bien sure que cette "manière" est la bonne, sur ce principe la en tout cas, c'est notamment une des raison pourquoi à été conçu php, créer du contenu dynamiquement.

    A toi d'approfondir tout ca afin d'organiser encore mieux ton code php pour créer ta page.

  3. #3
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Hum...

    Ton code gagne en lisibilité certes... Encor que...

    Instancier les variables $droite et $gauche pour les envoyer à la fonction...

    Mais bon, ce n'est pas le plus gênant et je dirais même qu'on s'en fiche.

    Ce qui me gêne vraiment, c'est que tu envoies tout ton code HTML au serveur pour qu'il le traite...

    Et là, je contredis formellement TiEuAM.

    Cette manière de faire n'est pas bonne selon moi.

    Je te conseille plutôt d'organiser ton code HTML en bloc avec des commentaires si tu cherches à gagner en lisibilité.

    Avec la méthode que tu souhaiterais employer, tu auras moins de lignes de code mais un page qui s'affichera après un délais plus long.
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  4. #4
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Plutôt de l'avis aussi que ça n'est pas la fonction de PHP...

    Tu sembles vouloir chasser une mouche avec un fusil mitrailleur...
    Gare aux dégâts collatéraux.

    Tu as mis "CSS ?" dans ton titre, je crois qu'on s'en approche plus.

    Je n'ai pas la structure de ta page sous les yeux, donc pour les détails j'ai du mal, mais voici en gros l'idée :

    html et css sont du simple langage d'affichage.

    html se charge du sens de l'affichage. css se charge du style.

    donc là je trouve que c'est plutôt à ce niveau que les problèmes se répartissent dans tes exemples.

    Ton html donnerait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <div class="titre">Ma liste</div>
    <div class="ligne">et encore une</div>
    <div class="ligne">et encore une</div>
    <div class="ligne">et encore une</div>
    <div class="ligne">et encore une</div>
    <div class="ligne">et encore une</div>
    <div class="clear">&nbsp;</div>
    Et rien d'autre au sein de tes balises que les classes de style CSS personnalisées... Bien sûr, entre deux balises, ton html j'imagine, a un contenu différent à chaque ligne.

    Ta feuille css externe, je ne te donne pas d'exemple, je te laisse bosser CSS...

    Il y a beaucoup de répétitions ? Et alors ? Le copié-collé a été inventé pour ça !
    Par contre, chaque ligne correspond à une ligne d'affichage... Le code est tout ce qu'il y a de plus fluide pour tous les navigateurs ravis.

    Pour l'instant dans ce que tu dis, je ne vois pas de raison de mettre un langage de programmation tel que PHP... si toute cette page html est statique, si le contenu ne change pas régulièrement.

    Si tu veux automatiser un site qui change de contenu à un endroit ou à un autre de temps en temps dans l'affichage de ton site, en clair, si tu commences à concevoir des variables, là il te faut PHP.

    PHP est donc un langage de programmation, dérivé du C, et qui n'est pas compilé mais interprété... Néanmoins, c'est de la programmation. Certes, il ne fait que produire du html, mais du html 'variable' dirons-nous, qui doit changer tout seul à certains chargements de page, selon des critères que tu lui as défini, si tu veux...

    Je ne vois pas cela pour l'instant dans ta problématique...

    C'est mon avis et je le partage en tout cas.

    PS : la question qui tue :Re-demande-toi pourquoi tu veux changer ton site. Tu affirmes 'pour transformer les tableaux en div'... Ah... Et pourquoi ? Si la réponse est 'parce que c'est la mode' ou 'parce que Hector mon voisin m'a dit que c'était plus mieux'... Dis-toi que ce n'est sûrement pas suffisant comme motivation...
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  5. #5
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Pourquoi mettre des divisions plutôt que des tableaux?

    Parce que les tableaux pour la mise en forme c'est le mal.

    Ca fait déjà un gros point ^^

    En restant plus terre à terre, meilleure lisibilité du code et maintenance plus aisée.
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  6. #6
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    De façon plus générale, l'utilisation de tableaux pour la mise en forme pose des soucis majeurs :

    Un tableau doit contenir des données tabulaires, les lecteurs vocaux lisent les données tabulaires de façon carthésienne, à savoir, lecture des entêtes, puis lecture des occurences colonne/ligne. Ton site sera donc lu par les mal-voyants comme si il contenait des données sous forme d'un tableaux, en gros il sera incompréhensible, innaccessible.


    Aussi, il est important de savoir que les moteurs de recherche n'indexe pas le contenu des tableaux imbriqués (c'est le cas pour Google également).

  7. #7
    Membre éprouvé Avatar de TiEuAM
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 75
    Par défaut
    Je travaille actuellement sur la refonte d'un site contenant de très très nombreux affichages du type :
    titre -> donnée
    Très nombreux, cela veux plutot dire chez toi une 10aine ou une 100aine
    D'ou viens la valeur de tes var $droite et $gauche
    Y a t'il des éléments calculer par php dans tes var $droite et $gauche
    Y a t'il besoin tout court de php dans ta page

    Car si pas besoin de php pour former ta page, je voit effectivement pas l'intéret de le faire travailler, la seule chose que ça pourrai t'apporter est de la rapidité dans tes prochaines mise a jour car tu n'aura pas a te retaper les "100" lignes à la main, mais en contre partie, ton script sera plus lent à exécuter comme le dit si bien Deallyra.

    Dendrite : Pour l'instant dans ce que tu dis, je ne vois pas de raison de mettre un langage de programmation tel que PHP... si toute cette page html est statique, si le contenu ne change pas régulièrement.
    Donc la manière est la bonne selon ce que contiennent tes var $gauche et $droite, ou plutôt d'ou leur valeur a été tiré. Ce n'est plus le mode bon rôle de php si c'est toi qui assigne leur valeur à la main dans ton script. (sauf si tiré d'un calcul php)

  8. #8
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services à domicile

    Informations forums :
    Inscription : Septembre 2007
    Messages : 14
    Par défaut
    Bonjour à tous et merci de vos nombreuses réponses.

    Alors pour répondre en vrac.

    Oui la question du tableau et div, disons que c'était dans l'optique d'un code plus "correct" je n'utilise pas de données tabulaires donc je me suis rangé du côté des div comme je l'ai vu conseillé un peu partout.

    Mes données sont bien sûr variables. Le "titre" lui est souvent une chaine que j'entre à la main même si souvent il y a des éléments dynamiques dedans.
    La partie "donnée" en revanche est tout le temps le résultat d'un code php.

    Pour le nombre d'occurence disons que selon les fichiers traités il y a entre 10 et une 30 aine par page traitée.

    Pour les CSS, mes "colonnes" sont effectivement toutes formatées par classes css type "colonne1" "colonne2" "colonne3" mais sur toutes les occurences rien ne change elles ont toutes la même disposition.

    Pour vous donner un exemple simple de ce a quoi ressemblme mon code ça donne a peu près ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    afficher("Nom", $nom);
     
    $droite = "<select><option>".calculerOption(1)."</option> [...] </select>";
    afficher("Choix", $droite);
     
    if($toto == 2) $droite = '<input type="text" value="toto2">';
    else $droite = '<textarea name="valueToto">'.calculerValeurToto(2).'</textarea>';
    afficher("Toto".$toto, $droite);
    etc...

    sinon j'aurais eu quelque chose du genre :

    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
    <div style="float : left" class="colGauche">Nom</div>
    <div style="float : left" class="colDroite"><?php echo $nom; ?></div>
    <div style="clear : both;"></div>
     
    <div style="float : left" class="colGauche">Choix</div>
    <div style="float : left" class="colDroite">
       <select>
          <option><?php calculerOption(1); ?></option>
          ...
       </select>
    </div>
    <div style="clear : both;"></div>
     
    <div style="float : left" class="colGauche">Toto<?php echo $toto;?></div>
    <div style="float : left" class="colDroite">
    <?php if($toto == 2) echo '<input type="text" value="toto2">';
    else echo '<textarea name="valueToto">'.calculerValeurToto(2).'</textarea>'; ?>
    </div>
    <div style="clear : both;"></div>
    au final je vais "afficher" une 30aine de fois dans le fichier avec des assignations de "$droite" par exemple qui peuvent se traduire en l'intégration de blocs <select> ou autres assez conséquent.

    Voilà j'espère que c'est un peu plus clair avec cet exemple là ^^

    Merci encore d'avance

Discussions similaires

  1. php, javascript.. ou les deux ?
    Par skwateur dans le forum Débuter
    Réponses: 7
    Dernier message: 28/05/2010, 11h58
  2. Réponses: 2
    Dernier message: 22/01/2010, 19h07
  3. [CSS][PHP] passer les variables
    Par sanosuke85 dans le forum Mise en page CSS
    Réponses: 11
    Dernier message: 01/02/2007, 10h58
  4. [PHP/JS] nieme probleme d'imbrcation dans les deux l
    Par the_edge dans le forum Langage
    Réponses: 4
    Dernier message: 30/12/2005, 20h48

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