[RESOLU] menu déroulant dynamique

Eléphant du PHP | 111 Messages

19 mai 2020, 19:26

Bonjour,
Je me suis mis à la programmation grace ou à cause du confinement. Je suis donc très très débutant.

Je récupère dans une base de donnée SQL une liste qui me servira à construire les onglets de ma page internet.
et en cliquant sur un des onglets il doit récupérer dans une table les éléments désirés dans l'ordre souhaité.

Vous vous en doutez cela ne fonctionne pas comme je veux.

Indépendamment les fichiers sont fonctionnels. Mon site existe et fonctionne mais avec un menu déroulant fixe (pas lié à la bdd). Et je souhaite avoir la possibilité de rajouter une page simplement en rajoutant une valeur dans la SQL.

J'espère avoir été assez clair pour que vous puissiez m'aider.

Merci d'avance,

Mon fichier menu est ici
<?php
  // Initialiser la session
  session_start();
  // Vérifiez si l'utilisateur est connecté, sinon redirigez-le vers la page de connexion
  if(!isset($_SESSION["username"])){
    header("Location: login.php");
    exit(); 
  }
?>
<!DOCTYPE html>
<html lang="FR-fr">
    <head>
        <title>WE R Ultrasound</title>
        <meta charset='UTF-8'>
        <meta name="viewport" content="width=device-width", initial-scale="1.0">
        <meta name="description" content="***">
        <link rel="stylesheet" href="style.css">
        <link href="https://fonts.googleapis.com/css?family=Open+Sans:800&display=swap" rel="stylesheet">
        <!--<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> <!-- A inclure pour info bulles-->
        <!--<script src="didier.js"></script>    <!-- mon script à mois-->
		<link rel="shortcut icon" href="favicon.ico" >
		<link rel="icon" type="image/gif" href="animated_favicon1.gif" >		
    </head>
	 <body class="body-ind">
        <?php 
            if ($_SESSION['username']=='adm')
				include('ADM.php');
            include("header.php");  
            //include("_SQL_menu.php");
			//include("compter_visite.php");
			//compter_visite();
			require('_connexion_pdo.php'); 
			 
			$query = "SELECT DISTINCT Type FROM Pr_liens;";
			try {
				$pdo_select = $pdo->prepare($query);
				$pdo_select->execute();
				$NbreData = $pdo_select->rowCount();    // nombre d'enregistrements (lignes)
				$rowAll = $pdo_select->fetchAll();      // tout dans le meme tableau
			}
			catch (PDOException $e){ echo 'Erreur SQL : '. $e->getMessage().'<br/>'; die(); }
			echo '<form action="_SQL_open.php" method="POST">';
				echo '<nav><div class="table"><ul>';
				foreach ($rowAll as $main){
					foreach($main as $valeur){
						$tab=$valeur;
						echo '<li class="menu-ind"><input type="submit" name ="tab" value="'.$tab.'"></li>';
						echo '<span>';
					}
				}	
				echo'</ul></div></nav>';
				
			echo '</form>';
		?>	
		<br><br>
	</body>
	<?php include("footer.php");?>
</html>

Mon fichier affichage est ici

<?php
  // Initialiser la session
  session_start();
  // Vérifiez si l'utilisateur est connecté, sinon redirigez-le vers la page de connexion
  if(!isset($_SESSION["username"])){
    header("Location: login.php");
    exit(); 
  }
  $tab=$_POST["tab"];
?>
<!DOCTYPE html>
<html lang="FR-fr">
    <head>
        <title>WE R Ultrasound</title>
        <meta charset='UTF-8'>
        <meta name="viewport" content="width=device-width", initial-scale="1.0">
        <meta name="description" content="***">
        <link rel="stylesheet" href="style.css">
        <link href="https://fonts.googleapis.com/css?family=Open+Sans:800&display=swap" rel="stylesheet">
        <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> <!-- A inclure pour info bulles-->
        <script src="didier.js"></script>    <!-- mon script à mois-->
		<link rel="shortcut icon" href="favicon.ico" >
		<link rel="icon" type="image/gif" href="animated_favicon1.gif" >
		
    </head> 
	

    <body class="body-ind" ">
        <?php 
            if ($_SESSION['username']=='adm')
			{
				include('ADM.php');
			}
            //include("header.php");  
            //include("test.php");
			include("compter_visite.php");
			compter_visite();
        ?>    
        <Section class="sec_ind">
            <h2>*******</h2>
<script>
$(function () {
  $('[data-toggle="tooltip"]').tooltip()
})
</script>
 
<?php

require('_connexion_pdo.php'); 
$query = "SELECT * FROM Pr_liens where Type='".$tab."' order BY Affichage ;";  

try {
    $pdo_select = $pdo->prepare($query);
    $pdo_select->execute();
    $NbreData = $pdo_select->rowCount();    // nombre d'enregistrements (lignes)
    $rowAll = $pdo_select->fetchAll();      // tout dans le meme tableau
	}
catch (PDOException $e){ echo 'Erreur SQL : '. $e->getMessage().'<br/>'; die(); }

$nbcol=3;                     //choix du Nbr de colonne pour affichage

echo '<table id="monTableau" class="tab">';  
                 
for($i=0;$i<$NbreData;$i++){
     
	//les valeurs à afficher
	$valeur1=$rowAll[$i]['Id'];
	$valeur2=$rowAll[$i]['Type'];
	$valeur3=$rowAll[$i]['Nom'];
	$valeur4=$rowAll[$i]['Chemin'];
	$valeur6=$rowAll[$i]['Descript'];
	if($i%$nbcol==0)
		echo '<tr>';

	echo '<td class="btn btn-secondary" data-toggle="tooltip" data-placement="top" title="'.$valeur6.'"><a href=' .$valeur4. ' target="_blank">'.$valeur3.'</a></td>';
	if($i%$nbcol==($nbcol-1))
		echo '</tr>';
}
echo '</table>';
?>
<br>
<br>
</Section> 
</body>
<?php
    include("footer.php");
?>
</html>

Eléphant du PHP | 111 Messages

19 mai 2020, 23:20

Désolé de vous avoir dérangé pour rien, je viens de trouver la soluce

il me fallait juste faire deux pages identiques, qui s'envoient les variables des deux tables en ping pong.

Désolé du dérangement
:oops: :oops: :oops: :oops:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

20 mai 2020, 00:05

Désolé de vous avoir dérangé pour rien, je viens de trouver la soluce

il me fallait juste faire deux pages identiques, qui s'envoient les variables des deux tables en ping pong.

Désolé du dérangement
:oops: :oops: :oops: :oops:
Pas de problème et merci à toi d'être revenu pour indiquer résolu, ça nous évite de chercher pour rien :D
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 111 Messages

21 mai 2020, 08:44

Et en cherchant un peu plus, il n'y a même pas besoin de faire deux pages, il m'a juste fallu inverser les requêtes et les ré inverser en css pour que le menu reste en haut.