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 :

[Tableaux] Assigner à la même variable des valeurs différentes pour chaque lien


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut [Tableaux] Assigner à la même variable des valeurs différentes pour chaque lien
    Bonjour,

    Je suis en train de faire des liens dans un fichiers externe.
    Le seul problème c'est quand je cherche à donner une valeur différente à la variable $page pour chaque lien différent.
    Je ne peux pas faire ceci services.php?page=$valeur1 etc parce qu'il un url rewrite derrière qui me demande décrire comme ceci: services-$page.html

    Voici mon code que j'essaie de modifier :
    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
     
    <?php
    $information = "Demande d'information";
    $faq = "Foire aux questions";
    $photos = "Gelerie photos";
    $news = "Les news d'Alberta";
    $livredor = "Le livre d'or";
    $video = "Vidéo";
     
     
     
    $lienDemandeInfo = "informations";
    $lienFaq = "foire-aux-questions";
    $lienGalerie = "galerie-photos";
    $lienAlbertaNews = "alberta-news";
    $lienGusestBook = "guest-book";
    $lienVideo = "video";
     
     
     
    $menu = "<ul>";
    $menu .= "<li><a href=\"services-$page.html\">$information</a></li>";
    $menu .= "<li><a href=\"services-$page.html\">$faq</a></li>";
    $menu .= "<li><a href=\"services-$page.html\">$photos</a></li>";
    $menu .= "<li><a href=\"services-$page.html\">$news</a></li>";
    $menu .= "<li><a href=\"services-$page.html\">$livredor</a></li>";
    $menu .= "<li><a href=\"services-$page.html\">$video</a></li>";
    $menu .= "</ul>";
    ?>
    Bien entendu il y a derrière un fichier htaccess
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine on 
    RewriteRule ^([a-z\-]+)-([0-9a-zA-Z-]+)\.html$  services.php?page=$1 [L]
    RewriteRule ^([a-z\-]+)-([0-9a-zA-Z-]+)-([0-9]+)\.html$  services.php?page=$1&IDT=$2 [L]
    Bien entendu il y a à quelque part ce code pour afficher le contenu selon la valeur envoyée par $page.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete =  sprintf(" SELECT titre, contenu, ID FROM texte WHERE page='%s' ", $page);
    Adez-moi SVP à écricre ce lien qui prend la valeur de:
    $page = $lienDemandeInfo; => pour le lien information
    $page = $lienFaq; => pour le lien faq
    etc.

    D'avance je vous remercie beaucoup

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Tu peux crée un tableau à deux dimensions qui va contenir le titre et son lien.
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $MonTableau=Array();
    $MonTableau[0][0]="Demande d'information";
    $MonTableau[0][1]="informations"
     
    $MonTableau[1][0]="Foire aux questions";
    $MonTableau[1][1]="foire-aux-questions"
     
    ...
    Ensuite tu boucle sur ce tableau pour créer ton menu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $menu = "<ul>";
    //tu récupéres la taille du tableau
       $taille= ? ...
    for ($i=0;$i<$taille+1;$i++)
    {
       $menu .= "<li><a href=\"$MonTableau[$i][1]\">$MonTableau[$i][0]</a></li>";
    }
    $menu .= "</ul>";
    PS : C'est juste une indication. si c'est la même page qui est ouverte avec transmission de variable, il faudra modifier en conséquence le contenu du tableau et la génération du lien correspondant.

  3. #3
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    ouais la solution est l'utilisation d'un tableau...

    personnellement je l'aurais construit (et donc lu) autrement...

    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
     
    <?php
    // création du tableau : lien => titre
    $array = array(
    		$page1 => "titre 1",
    		$page2 => "titre 2",
    		$page3 => "titre 3"
    		);
     
    // affichage du menu
    echo "<ul>";
    foreach( $array AS $key => $val ) {
    	echo '<li><a href="'.$key.'.html">'.$val.'</a></li>';
    }
    echo "</ul>";
    ?>

  4. #4
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Merci beaucoup à vous tous.
    L'exemple de DMpoub est très clair. Mais là je vais essayer voir et vous tiens au courant. Le problème c'est que c'est vers la même page que ça va.
    Je suis mal barré.
    Je voudrais faire un site pro qui utilise un seul fichier mais me voilà dans la merde. Je vais finalement faire comme au bon vieux temps.
    1 fichier par page.

    ça m'apprendra à vouloir faire quelque chose de pro

  5. #5
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    en fait ce que tu voulais faire, c'est un fichier index.php et le contenu ce sont des include() d'autres pages php non ?

    faire un tout un site en une seule vraie page ca doit pas être tres compliqué mais hyper chiant

  6. #6
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    Oui je me rend compte.
    Au fait comment font-ils les sites les pro en dév?
    Moi je crée un fichier php pour chaque page. En suite je mets les fonctions sur autres pages php que j'appelle dans ma page en cours.
    Mais chaque page a son fichier. Je me demande si c'est pro?

  7. #7
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    hmmm je sais pas si je suis un pro mais je programme depuis longtemps maintenant...

    depuis quelques années maintenant, je suis passé à un arbo comme celle-ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    admin/
       pages/
    images/
    include/
       config.php
       functions.php
    pages/
       home.php
       page2.php
       page3.php
       page4.php
     
    index.php
    ma page index.php contient tout le design du site, le contenu se trouvant dans des pages qui sont dans le dossier "pages". Les liens sont de type : index.php?page=maPage

    dans l'index.php j'ai un switch() qui gère l'include des pages
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if( !isset($_GET["page"]) )
        $_GET["page"] = "";
     
    switch( $_GET["page"]) ) {
       case "home" : include("pages/home.php"); break;
       case "page1" : include("pages/maPage1.php"); break;
       case "page2" : include("pages/maPage2.php"); break;
       default : include("pages/notFound.php"); break;
    }
    c'est assez bien pour l'URL rewriting ==> maPage.html au lieu de index.php?page=maPage ;-)

Discussions similaires

  1. Détecter des valeurs différentes de Y pour une même valeur de D
    Par max76 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/03/2013, 18h43
  2. [WD-2007] Créer des entêtes différentes pour chaque section
    Par Claude_Azoulai dans le forum Word
    Réponses: 1
    Dernier message: 29/12/2012, 22h29
  3. Réponses: 2
    Dernier message: 25/03/2010, 09h55
  4. Réponses: 17
    Dernier message: 09/02/2010, 16h22
  5. [SQL2K]Une même requête des résultats différents
    Par jeeerome dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/07/2006, 14h20

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