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 :

Include php, récupérer des id


Sujet :

Langage PHP

  1. #1
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Par défaut Include php, récupérer des id
    Bonjour,

    Je vais tenter de faire au mieux pour expliquer ce problème très simple.

    Je suppose que tous ici, quand on développe un site web quelconque, faisons des includes pour éviter de tout avoir dans une seule page.

    Ma question est :

    Supposons cette structure HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <header>
    		<a href="<?php echo $_url_site; ?>" title="accueil"><img src="img/logo_infocob.png" alt="logo infocb" /></a>	
    				
    			<nav>
    				<a href="#" id="menu-icon"></a>
    					<ul>
    						<li><a href="#madiv" class="current">Rechercher un contact</a></li>
    					</ul>
    				
    			</nav>
    </header>
    
    <?php include('monfichier.php'); ?>
    Et que dans monfichier.php j'ai :
    De quelle manière accéder à l'id qui est dans un autre "scope" si on peut parler ainsi? Ou est-ce tout simplement, pas possible?

    Merci d'avance pour vos réponses

    Bonne journée à tous ! (pluvieuse pour ma part...)

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je ne suis pas sûre de bien comprendre ton problème :
    Ce que tu as là, ce sont des ancres HTML, donc utilisées côté client. Une fois le PHP interprété, le HTML se moque de savoir si tu avais 12 fichiers PHP inclus les uns dans les autres ou un seul gros fichier, à partir du moment où le HTML construit au final est valide.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Par défaut
    Bonjour Celira,

    Merci pour ta réponse !

    Jusque là, on est d'accord. Mais dans mon exemple, j'ai un href qui pointe sur l'id madiv. Or, madiv est une balise (quelconque) qui est dans la page qui est justement include.

    Et ma question est, comment accéder à cet ID? Si c'est possible bien sûr

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Tu veux y accéder pour faire quoi exactement ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Par défaut
    L'exemple que j'ai mis n'est pas anodin

    C'est un menu, qui pointe sur une div du site tout simplement. Mais de cette manière, je comprends pas trop comment récupérer le fameux id..

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Il doit y avoir un truc qui m'échappe : si tu inclus monfichier.php dans l'autre, au final tu vas avoir une page HTML qui contiendra les 2 éléments : le lien et la div. Tu pourras donc cliquer sur le lien et le navigateur avancera jusqu'à l'ancre.

    A moins que la div ne soit pas dans la même page ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Par défaut
    Je dois sûrement mal m'exprimer, désolé

    Supposons un premier fichier php :

    fichier1.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Du code
    <li><a href="#madiv1" >Onglet1</a></li>
    <li><a href="#madiv2" >Onglet2</a></li>
    <li><a href="#madiv3" >Onglet3</a></li>
    Encore du code
    include('fichier2.php');
    Et encore du code
    Corrige moi si je me trompe, c'est bien 3 lien qui pointent chacun sur une div différente.

    fichier2.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Du code
    <div id="madiv1">Saloute les potes</div>
    Encore du code
    <div id="madiv2">Comment va?</div>
    Toujours du code
    <div id="madiv3">Pas trop mal</div>
    Et les divs associées à chaque lien.

    Le problème étant, que les liens sont dans un autre fichier. Autrement dit, lorsque je clique sur le lien tel quel, il trouve pas la div "madiv1" ou les autres.

    C'est plus clair?

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Hum... le truc c'est que normalement, le fait que ce soit des fichiers PHP différents n'est pas censé avoir d'impact sur la page HTML. Tu devrais obtenir en source HTML quelque de ce genre :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Du code HTML
    <li><a href="#madiv1" >Onglet1</a></li>
    <li><a href="#madiv2" >Onglet2</a></li>
    <li><a href="#madiv3" >Onglet3</a></li>
    Encore du code HTML
    Du code HTML
    <div id="madiv1">Saloute les potes</div>
    Encore du code HTML
    <div id="madiv2">Comment va?</div>
    Toujours du code HTML
    <div id="madiv3">Pas trop mal</div>
    Et encore du code HTML
    et normalement les liens devraient trouver les divs.

    Le seul cas que je vois qui pourraient poser problème ce serait un code de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    switch ($page) {
    case 1 :
    	<div id="madiv1">Saloute les potes</div>
    	break;
    case 2 :
    	Encore du code
    	<div id="madiv2">Comment va?</div>
    	break;
    case 3 :
    	Toujours du code
    	<div id="madiv3">Pas trop mal</div>
    	break;
    }
    Dans ce cas, tu ne peux avoir qu'une seule des 3 divs à la fois et du coup, les deux autres liens pédalent dans la semoule.
    Est-ce un cas de ce genre ? Qu'est-ce que tu obtiens dans ta source HTML générée ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  9. #9
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Par défaut
    Ah oui, on est d'accord que le HTML généré est en une seule et unique page.

    Voici le vrai code pour le coup :

    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
    <?php
    include '_inc_header.php';
    ?>
    	  
    	<header>
    		<a href="<?php echo $_url_site; ?>" title="accueil"><img src="img/logo_infocob.png" alt="logo infocb" /></a>	
    				
    			<nav>
    				<a href="#" id="menu-icon"></a>
    					<ul>
    						<li><a href="#contact" class="current a_menu_mobile">Rechercher un contact</a></li>
    						<li><a href="#id" class="a_menu_mobile">Créer un contact</a></li>
    						<li><a href="#id" class="a_menu_mobile">Créer une note</a></li>
    						<li><?php if($_access_ok == 1) {?>
    							<form name="f_disconnect" role="form" action="<?php echo $_url_site; ?>" method="post" enctype="multipart/form-data"style="margin-top: -15px;"><input type="hidden" name="deconnexion" id="deconnexion" value="deconnexion"  /><button type="submit" name="validate" value="deconnexion" class="btn btn-sm btn-primary" >se deconnecter</button></form>
    							<p><?php echo $_SESSION['prenom']; ?> <?php echo $_SESSION['nom']; ?></p></li>
    						<?php }?>
    						
    					</ul>
    				
    			</nav>
    		<?php 
    		if ( $_access_ok == 1 ) {
    			include '_inc_dashboard.php';
    		} else {
    			include '_inc_login.php';
    		}
    		?>
    	</div>
    <?php include '_inc_footer.php'; ?>
    Et le _inc_dashboard.php (puisque c'est celui qui m'intéresse ici) :
    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
    <div class="content"><!-- CONTENT -->
    	<ul class="nav nav-tabs"><!-- ul nav -->
    		<li class="active"><a data-toggle="tab" href="#rechercher" title="Rechercher un contact"><i class="fa fa-search fa-fw fa-lg"></i><span>Rechercher</span></a></li>
    		<li id="navTabFiche" style="display:none;"><a data-toggle="tab" href="#fiche" title="fiche contact"><i class="fa fa-user fa-fw fa-lg"></i><span>Fiche</span></a></li>
    		<li><a data-toggle="tab" href="#contact" title="Créer un contact"><i class="fa fa-plus fa-fw fa-lg"></i><i class="fa fa-user fa-fw fa-lg"></i><span>Créer un contact</span></a></li>
    		<li><a data-toggle="tab" href="#action" title="Créer une note"><i class="fa fa-plus fa-fw fa-lg"></i><i class="fa fa-list-alt fa-fw fa-lg"></i><span>Créer une note</span></a></li>
    	</ul><!-- /ul nav -->
    	<div class="tab-content"><!-- tab content -->
    		<div id="rechercher" class="panel-recherche tab-pane fade in active"><!-- #id = rechercher -->
    			<h4>Rechercher contact</h4>
    			<?php 
    			include('_inc_dashboard_recherche.php'); ?>
    		</div><!-- /#id = rechercher -->
    		<div id="fiche" class="panel-fiche tab-pane fade"><!-- #id = fiche -->
    		<?php 
    			$_form_type = '_fiche';
    			include('_inc_dashboard_contact_form.php'); ?>
    		</div><!-- /#id = fiche -->
    		<div id="contact" class="panel-contact-creation tab-pane fade"><!-- #id = contact -->
    			<h4>Créer un contact</h4>
    			<?php 
    			$_form_type = '_creation';
    			include('_inc_dashboard_contact_form.php'); ?>
    		</div><!-- /#id = contact -->
    		<div id="action" class="panel-action-creation tab-pane fade"><!-- #id = action -->
    			<h4>Créer une note</h4>
    			<!-- FORM = f_action -->
    			<form id="f_action" class="f_action form-horizontal" role="form" action="<?php echo $_url_site; ?>" method="post">
    			<?php include('_inc_dashboard_action_form.php'); ?>
    			</form>
    			<!-- /FORM = f_action -->
    		</div><!-- /#id = action -->
    	</div><!-- /tab content -->
    </div><!-- /CONTENT -->
    Ce qui est en rouge, c'est le lien du menu qui devrait pointer sur cette div en question.

    Or, due à l'include, il pointe vers... rien du tout

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je viens de tester ton code et "Rechercher un contact" renvoi bien vers l'ancre "#contact"
    Créer un contact / Créer une note ne renvoient vers rien puisque l'ancre "#id" n'existe pas.

    Le problème se pose peut être avec les bouts de code/HTML manquants.

    Le fonctionnement de l'ancre se passe uniquement en HTML de toute façon donc c'est la source HTML qu'il faut étudier.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Par défaut
    Sachant que ça marche pas, j'ai juste tester avec #contact.

    Etrange que ça fonctionne chez toi...

  12. #12
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Par défaut
    De cette manière, aucun lien ne pointe vers la div correspondante...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <nav>
    				<a href="#" id="menu-icon"></a>
    					<ul>
    						<li><a href="#rechercher" class="current a_menu_mobile">Rechercher un contact</a></li>
    						<li><a href="#contact" class="a_menu_mobile">Créer un contact</a></li>
    						<li><a href="#action" class="a_menu_mobile">Créer une note</a></li>
    						<li><?php if($_access_ok == 1) {?>
    							<form name="f_disconnect" role="form" action="<?php echo $_url_site; ?>" method="post" enctype="multipart/form-data"style="margin-top: -15px;"><input type="hidden" name="deconnexion" id="deconnexion" value="deconnexion"  /><button type="submit" name="validate" value="deconnexion" class="btn btn-sm btn-primary" >se deconnecter</button></form>
    							<p><?php echo $_SESSION['prenom']; ?> <?php echo $_SESSION['nom']; ?></p></li>
    						<?php }?>
     
    					</ul>
     
    			</nav>
    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
    <div class="content"><!-- CONTENT -->
    	<ul class="nav nav-tabs"><!-- ul nav -->
    		<li class="active"><a data-toggle="tab" href="#rechercher" title="Rechercher un contact"><i class="fa fa-search fa-fw fa-lg"></i><span>Rechercher</span></a></li>
    		<li id="navTabFiche" style="display:none;"><a data-toggle="tab" href="#fiche" title="fiche contact"><i class="fa fa-user fa-fw fa-lg"></i><span>Fiche</span></a></li>
    		<li><a data-toggle="tab" href="#contact" title="Créer un contact"><i class="fa fa-plus fa-fw fa-lg"></i><i class="fa fa-user fa-fw fa-lg"></i><span>Créer un contact</span></a></li>
    		<li><a data-toggle="tab" href="#action" title="Créer une note"><i class="fa fa-plus fa-fw fa-lg"></i><i class="fa fa-list-alt fa-fw fa-lg"></i><span>Créer une note</span></a></li>
    	</ul><!-- /ul nav -->
    	<div class="tab-content"><!-- tab content -->
    		<div id="rechercher" class="panel-recherche tab-pane fade in active"><!-- #id = rechercher -->
    			<h4>Rechercher contact</h4>
    			<?php 
    			include('_inc_dashboard_recherche.php'); ?>
    		</div><!-- /#id = rechercher -->
    		<div id="fiche" class="panel-fiche tab-pane fade"><!-- #id = fiche -->
    		<?php 
    			$_form_type = '_fiche';
    			include('_inc_dashboard_contact_form.php'); ?>
    		</div><!-- /#id = fiche -->
    		<div id="contact" class="panel-contact-creation tab-pane fade"><!-- #id = contact -->
    			<h4>Créer un contact</h4>
    			<?php 
    			$_form_type = '_creation';
    			include('_inc_dashboard_contact_form.php'); ?>
    		</div><!-- /#id = contact -->
    		<div id="action" class="panel-action-creation tab-pane fade"><!-- #id = action -->
    			<h4>Créer une note</h4>
    			<!-- FORM = f_action -->
    			<form id="f_action" class="f_action form-horizontal" role="form" action="<?php echo $_url_site; ?>" method="post">
    			<?php include('_inc_dashboard_action_form.php'); ?>
    			</form>
    			<!-- /FORM = f_action -->
    		</div><!-- /#id = action -->
    	</div><!-- /tab content -->
    </div><!-- /CONTENT -->
    En ce qui concerne l'html généré :
    Nom : 4c37cd20f281f2e21dd9240c3a687e8a.png
Affichages : 332
Taille : 38,3 Ko

    Autre chose un peu étrange. J'ai essayé de mettre le code de l'include à la place de l'include, et ça ne fonctionne pas malgré tout.

  13. #13
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Par défaut
    Résolu !

    J'ai rajouté l'attribut Bootstrap data-toggle="tab". Je sais pas si c'est lié, mais de cette manière là ça fonctionne...

    En tout cas merci de m'avoir aiguiller !

    Paix, amour et chocolat

    *trempette*

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

Discussions similaires

  1. [PHP-JS] Comment récupérer des valeurs passées en URL?
    Par megapacman dans le forum Langage
    Réponses: 9
    Dernier message: 09/06/2006, 13h09
  2. Réponses: 4
    Dernier message: 11/04/2006, 13h22
  3. Récupérer des variables Perl dans un script PHP
    Par barabath dans le forum Langage
    Réponses: 2
    Dernier message: 10/04/2006, 01h27
  4. [Swishmax] Récupérer des variables php
    Par denis finch dans le forum Flash
    Réponses: 3
    Dernier message: 23/12/2005, 15h29
  5. récupérer les erreurs php dans des exceptions
    Par jeanvincent dans le forum Langage
    Réponses: 6
    Dernier message: 14/10/2005, 16h26

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