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 :

éviter muliplication des pages include


Sujet :

Langage PHP

  1. #1
    Membre à l'essai Avatar de totophe56
    Homme Profil pro
    Concepteur FOAD
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Concepteur FOAD
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Points : 17
    Points
    17
    Par défaut éviter muliplication des pages include
    Bonjour,

    j'appelle mes pages include à partir de mon menu à l'aide d'une requête ajax

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("GET", "../pages/includepage.php", false);
    dont le contenu est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php
    include ('../pages/page.php');
    Chose qui est fonctionnelle mais qui m'impose la création d'une page include pour chaque page php que je veux appeler

    ce qui va sans dire que quand mon site fera 150 pages il y aura 150 page include

    est-il possible de ne créer qu'un seul fichier include avec passage de variable ajax en php pour modifier le path du fichier include ??

    Vous remerciant d'avance pour vos conseils

    Totophe

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    rien compris.

    Refais-le nous :
    • avec des noms de fichiers plus explicites que "page.php" et includepage.php".
    • en différenciant bien "pages incluses", fonction "include()",...


    Un exemple plus "réaliste", quoi...

  3. #3
    Membre à l'essai Avatar de totophe56
    Homme Profil pro
    Concepteur FOAD
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Concepteur FOAD
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Bonjour Jreaux62,

    donc j'ai une page index avec différentes div

    une nav ou se trouve mon menu à partir duquel j'appelle une fonction ajax se trouvant dans un fichier externe afin d'afficher le contenu d'une page dans ma div main:

    script :

    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
    function appelcontenu2()
     { 
     
        var xhr = creation_xhr(); // je lance ma fonction ajax
     
              	xhr.onreadystatechange = function() { 
                        if (xhr.readyState == 4 && xhr.status == 200) {;
     
                             document.getElementsByTagName('main')[0].innerHTML=xhr.responseText;
     
                           }
                            else 
                            { }
     
     
    		};
                xhr.open("GET", "../pages/includecontenu2.php", false); 
                xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                xhr.send(null);
     
     
     }
    la page contenant l'include :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php
    include ('../pages/contenu2.php');
    la page contenu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php
    echo 'contenu2';
    tout ceci est fonctionnel mais j'aimerai savoir comment centraliser les requêtes include dans un seul fichier sachant que mon menu est créé automatiquement via php et appel des liens dans ma base de données postgres

    php création du menu :

    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
     
                      echo '<ul class="ul1">';           
                      $menu1= pg_query($pgcon,"SELECT COUNT(idsousmenu1) AS rows FROM menu1;");
                      /*$retmenu1= pg_fetch_assoc($menu1);*/
                      /*echo ($retmenu1['rows']);*/
                     /* $retnummenu1=$retmenu1['rows']; */ 
                      $retnummenu1= 3;
     
                        echo '<li class="li1"><a href="#">menu1</a>';
                      echo'<ul class="ul2">'; 
                      for ($i=1;$i<=$retnummenu1;$i++){
                       $url1= pg_query($pgcon,"SELECT urlsousmenu1 FROM menu1 WHERE idsousmenu1 = $i;");
                       $returl1= pg_fetch_assoc($url1);
                       $urltrait1=$returl1['urlsousmenu1'];
     
                       $nom1= pg_query($pgcon,"SELECT nomsousmenu1 FROM menu1 WHERE idsousmenu1 = $i;");
                       $retnom1= pg_fetch_assoc($nom1);
                       $nomtrait1=$retnom1['nomsousmenu1'];
     
     
                       echo ('<li class="li2">');
                       /*echo ('<a href="/pages/'.$urltrait.'.php">'.$nomtrait.'</a>');*/
                       echo ('<a href="#" onclick="appel'.$urltrait1.'()">'.$nomtrait1.'</a>');
     
     
                      echo '</li>';
     
     
                      }
                    echo '</ul>';
                    echo '</li>';
    espérant que ça soit plus clair

    avec mes remerciements

    Totophe56

  4. #4
    Membre à l'essai Avatar de totophe56
    Homme Profil pro
    Concepteur FOAD
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Concepteur FOAD
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    bonjour,

    en fait j'aimerai récupérer ma variable $urltrait1 du fichier menu en php pour qu'il puisse devenir la variable data de ma fonction ajax qu ise trouve dans un fichier externe

    php
    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
     echo '<ul class="ul1">';           
                      $menu1= pg_query($pgcon,"SELECT COUNT(idsousmenu1) AS rows FROM menu1;");
                      /*$retmenu1= pg_fetch_assoc($menu1);*/
                      /*echo ($retmenu1['rows']);*/
                     /* $retnummenu1=$retmenu1['rows']; */ 
                      $retnummenu1= 3;
                        
                        echo '<li class="li1"><a href="#">menu1</a>';
                      echo'<ul class="ul2">'; 
                      for ($i=1;$i<=$retnummenu1;$i++){
                       $url1= pg_query($pgcon,"SELECT urlsousmenu1 FROM menu1 WHERE idsousmenu1 = $i;");
                       $returl1= pg_fetch_assoc($url1);
                       $urltrait1=$returl1['urlsousmenu1'];
                                         
                       $nom1= pg_query($pgcon,"SELECT nomsousmenu1 FROM menu1 WHERE idsousmenu1 = $i;");
                       $retnom1= pg_fetch_assoc($nom1);
                       $nomtrait1=$retnom1['nomsousmenu1'];
                       
                       
                       echo ('<li class="li2">');
                       echo ('<a href="#" onclick="menutest()">'.$nomtrait1.'</a>');
                       
                     
                      echo '</li>';
                     
                       
                      }
                    echo '</ul>';
                    echo '</li>';
    fonction ajax

    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
    function menutest()
     { 
    var data ="depart.php";// je veux que ma variable php $urltrait1 remplace "depart.php"
       var xhr = creation_xhr();
                    
              	xhr.onreadystatechange = function() { 
                        if (xhr.readyState == 4 && xhr.status == 200) {;
                           
                             document.getElementsByTagName('main')[0].innerHTML=xhr.responseText;
                             
                           }
                            else 
                            { }
                                 
                                
    		};
                   
                xhr.open("GET", "../pages/"+(data), false); // et je veux retrouver ma variable ici
                xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                xhr.send(null); 
                 
        
     }
    merci pour vos conseils

  5. #5
    Invité
    Invité(e)
    Par défaut
    bonjour, il suffit de passe l'URL de la page en paramètre de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function menutest( urlpage )
    {
        var xhr = creation_xhr(); // je lance ma fonction ajax
    	xhr.onreadystatechange = function() { 
    		if (xhr.readyState == 4 && xhr.status == 200) {
    			document.getElementsByTagName('main')[0].innerHTML=xhr.responseText;
    		}
    	};
    	xhr.open("GET", urlpage, false); 
    	xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    	xhr.send(null);
    }
    et dans le menu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                      echo '<li class="li2"><a href="#" onclick="menutest( \'../pages/' . $nomtrait1 . '\' ); return:false;">' . $nomtrait1 . '</a></li>';

  6. #6
    Membre à l'essai Avatar de totophe56
    Homme Profil pro
    Concepteur FOAD
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Concepteur FOAD
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Merci Beaucoup Jreaux62

    le return:false posait problème ;-)

    ce qui fonctionne chez moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo ('<a href="#" onclick="appelmenu(\'pages/' . $urltrait1 . '.php\' );">'.$nomtrait1.'</a>');
    + la modif du paramètre comme tu as indiqué sur la fonction

  7. #7
    Invité
    Invité(e)
    Par défaut
    ! Oups ! mea culpa
    c'est normal, il faut écrire return false; !

    Ca empêche de lancer l'action du href.

  8. #8
    Membre à l'essai Avatar de totophe56
    Homme Profil pro
    Concepteur FOAD
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Concepteur FOAD
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    oui tout parfait comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo ('<a href="#" onclick="appelmenu(\'pages/' . $urltrait1 . '.php\' );return false;">'.$nomtrait1.'</a>');
    merci beaucoup

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

Discussions similaires

  1. Pas d'affichage avec l'appel des pages par include
    Par jlb59 dans le forum Langage
    Réponses: 4
    Dernier message: 22/05/2011, 13h33
  2. mettre des session_start() dans les pages includées ?
    Par 123quatre dans le forum Langage
    Réponses: 4
    Dernier message: 08/11/2007, 11h30
  3. Réponses: 20
    Dernier message: 22/05/2007, 17h52
  4. Réponses: 2
    Dernier message: 03/10/2002, 17h24

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