Problème de présentation du tableau de résultats

Résolu/Fermé
danielos77 Messages postés 108 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 16 janvier 2024 - 30 mai 2020 à 22:07
danielos77 Messages postés 108 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 16 janvier 2024 - 31 mai 2020 à 00:35
Bonjour,
Le code suivant donne le résultat attendu pour la requête mais l'affichage ne se fait correctement que pour la ligne des titres et pour celle de la première ligne de résultats. La suivante est "en vrac" sous le tableau mais les valeurs ne sont pas dans chacune dans une cellule comme pour les 2 lignes cités avant.
D'où vient cette altération ? car il y a bien un foreach avant la ligne de résultats

<?php
	//RECUPERATION DE L'HISTORIQUE DES STAGES EFFECTUES
	//activation de l\'affichage des erreurs PHP
	error_reporting(E_ALL);
	ini_set('display_errors', TRUE);
	ini_set('display_startup_errors', TRUE);
    
    // met en "dur" le N° ANEG
    echo 'N° ANEG : '.$NumANEG.'<br>';

	//on inclut le fichier de connexion à la bdd
	require_once "../secure/cnxBdd.php";
	
	//préparation de la requête avec jointure, filtrage et classement
	$sql = 'SELECT * 
        FROM Inscriptions_VM
		LEFT JOIN Stages_VM ON Inscriptions_VM.ChoixStage = Stages_VM.NumStage
        WHERE Inscriptions_VM.NumANEG = :num 
		ORDER BY Stages_VM.DateDebut DESC';
	
	//tri des datas d\'après le NumANEG pour les avoir dans un tableau 
	$datas = array(':num'=>$NumANEG);

	//Execution de la requete
	try{
	$req = $bdd->prepare($sql);
	$req->execute($datas);

	//on récupère les résultats
	$result = $req->fetchAll();

	}catch(Exception $e){
		// en cas d'erreur :
		echo " <br>Erreur ! ".$e->getMessage();
		echo " <br>Les datas : " ;
		print_r($datas);
	}
			            	
	// Mise en forme des résultats pour les champs voulus
		if(!empty($result)){
        // Masque du tableau séparé pour ne pas le recopier à chaque ligne
        echo '
        <table style="border-collapse:collapse;" cellspacing="0">
                <tr> <!-- masque du tableau -->
        			<th style="border-width:1; border-color:black; border-style:solid;">N° ANEG</th>
        			<th style="border-width:1; border-color:black; border-style:solid;">N° Stage</th>
        			<th style="border-width:1; border-color:black; border-style:solid;">Stage ANEG ou CMCAS</th>
        			<th style="border-width:1; border-color:black; border-style:solid;">Type de Stage</th>
        			<th align="center" style="border-width:1; border-color:black; border-style:solid;">Nb d´heure de Vol</th>
        			<th style="border-width:1; border-color:black; border-style:solid;">Lieu du stage</th>
        			<th style="border-width:1; border-color:black; border-style:solid;">Du</th>
        			<th style="border-width:1; border-color:black; border-style:solid;">Au</th>
        		</tr>
            ';		    
        		    foreach($result as $uneLigne){
        // Suite du tableau de l\'historique après récupération des informations à partir du N° ANEG
        echo'
            <tr> <!-- lignes des résultats -->
                <td style="border-width:1; border-color:black; border-style:solid;">'.$uneLigne['NumANEG'].'</td>
                <td style="border-width:1; border-color:black; border-style:solid;">'.$uneLigne['NumStage'].'</td>
                <td style="border-width:1; border-color:black; border-style:solid;">'.$uneLigne['Action'].'</td>
                <td style="border-width:1; border-color:black; border-style:solid;">'.$uneLigne['TypeStage'].'</td>
                <td align="center" style="border-width:1; border-color:black; border-style:solid;">'.$uneLigne['NbHeureVolStage'].'</td>
                <td style="border-width:1; border-color:black; border-style:solid;">'.$uneLigne['LieuStage'].'</td>
                <td style="border-width:1; border-color:black; border-style:solid;">'. date('d-m-Y', strtotime($uneLigne['DateDebut'])).'</td>
    			<td style="border-width:1; border-color:black; border-style:solid;">'.date('d-m-Y', strtotime($uneLigne['DateFin'])).'</td>
    		</tr> 
        </table>';
        	}} else {
        // Si absence d'historique
        echo '<font size="6"><p align="left">Vous n\'avez pas d\'historique de stage</p></font>';
       }

?
>

Merci au contributeur qui éclairera ma lanterne sur ce point.
Daniel

Configuration: Windows / Firefox 76.0

4 réponses

yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
30 mai 2020 à 22:26
bonjour, montre-nous le code source HTML de la page affichée, ce sera plus clair et plus précis.
cela t'aidera à découvrir où se trouve ton erreur.
tu aurais probablement déjà trouvé ton erreur si tu avais examiné le code HTML généré.
1
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
31 mai 2020 à 00:02
Bonsoir,

Quand on te demande le code source "généré" c'est celui que tu récupères en faisant CTTL+U dans ton navigateur lorsque tu affiches la page .....
Pas le code que toi tu as écris...
Bref, quoi qu'il en soit, ta boucle foreach est fausse ...
Tu y a laissé le </table> ..

if(!empty($result)){
  // Masque du tableau séparé pour ne pas le recopier à chaque ligne
  echo '
  <table style="border-collapse:collapse;" cellspacing="0">
      <thead>
        <tr> <!-- masque du tableau -->
          <th style="border-width:1; border-color:black; border-style:solid;">N° ANEG</th>
          <th style="border-width:1; border-color:black; border-style:solid;">N° Stage</th>
          <th style="border-width:1; border-color:black; border-style:solid;">Stage ANEG ou CMCAS</th>
          <th style="border-width:1; border-color:black; border-style:solid;">Type de Stage</th>
          <th align="center" style="border-width:1; border-color:black; border-style:solid;">Nb d´heure de Vol</th>
          <th style="border-width:1; border-color:black; border-style:solid;">Lieu du stage</th>
          <th style="border-width:1; border-color:black; border-style:solid;">Du</th>
          <th style="border-width:1; border-color:black; border-style:solid;">Au</th>
        </tr>
      </thead>
      <tbody>
    ';	

    foreach($result as $uneLigne){
      // Suite du tableau de l\'historique après récupération des informations à partir du N° ANEG
      echo'
        <tr> <!-- lignes des résultats -->
          <td style="border-width:1; border-color:black; border-style:solid;">'.$uneLigne['NumANEG'].'</td>
          <td style="border-width:1; border-color:black; border-style:solid;">'.$uneLigne['NumStage'].'</td>
          <td style="border-width:1; border-color:black; border-style:solid;">'.$uneLigne['Action'].'</td>
          <td style="border-width:1; border-color:black; border-style:solid;">'.$uneLigne['TypeStage'].'</td>
          <td align="center" style="border-width:1; border-color:black; border-style:solid;">'.$uneLigne['NbHeureVolStage'].'</td>
          <td style="border-width:1; border-color:black; border-style:solid;">'.$uneLigne['LieuStage'].'</td>
          <td style="border-width:1; border-color:black; border-style:solid;">'. date('d-m-Y', strtotime($uneLigne['DateDebut'])).'</td>
          <td style="border-width:1; border-color:black; border-style:solid;">'.date('d-m-Y', strtotime($uneLigne['DateFin'])).'</td>
        </tr>';
    }
    echo '</tbody>
       </table>';
} else {
  // Si absence d'historique
  echo '<font size="6"><p align="left">Vous n\'avez pas d\'historique de stage</p></font>';
}

1
danielos77 Messages postés 108 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 16 janvier 2024 2
30 mai 2020 à 22:39
Bonsoir yg_be,
voici le code complet
<!doctype html>
<html>

<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192"  href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">


<title>INSCRIPTION STAGE</title>
<META NAME="Author" CONTENT="D. Haas">
<META NAME="Description" CONTENT="Demande d'inscription à un stage">
<META NAME="robots" content="noindex">
<META NAME="googlebot" content="noindex">


<script>
function refuserToucheEntree(event)
{
    // Compatibilité IE / Firefox
    if(!event && window.event) {
        event = window.event;
    }
    // IE
    if(event.keyCode == 13) {
        event.returnValue = false;
        event.cancelBubble = true;
    }
    // DOM
    if(event.which == 13) {
        event.preventDefault();
        event.stopPropagation();
    }
}
</script>


<script type="text/javascript">
function popup() {
w=open("",'popup','width=400,height=640,toolbar=no,scrollbars=auto,resizable=yes');
w.document.write("<BODY>");
w.document.write("RECAPITULATIF DE VOTRE DEMANDE"+"<BR><BR>");
w.document.write("Identifiant ANEG : "+document.forms["2"].elements["NumANEG"].value+"<BR><BR>");
w.document.write("Nom & Prénom : "+document.forms["2"].elements["Nom"].value+"   "+document.forms["2"].elements["Prenom"].value+"<BR><BR>");
w.document.write("Numéro du Stage demandé : "+document.forms["2"].elements["ChoixStage"].value+"<BR><BR>");
w.document.write("SSA de : "+document.forms["2"].elements["SSA"].value+"<BR><BR>");
w.document.write("CMCAS de : "+document.forms["2"].elements["CMCAS"].value+"<BR><BR>");
w.document.write("Téléphone : "+document.forms["2"].elements["Tph"].value+"<BR><BR>");
w.document.write("Mail : "+document.forms["2"].elements["Mail"].value+"<BR><BR>");
w.document.write("Coefficient Social : "+document.forms["2"].elements["CS"].value+" €"+"<BR><BR>");
w.document.write("Nombre d'Heures en DC : "+document.forms["2"].elements["NbHeureDC"].value+" Heures"+"<BR><BR>");
w.document.write("Nombre d'Heures en Solo : "+document.forms["2"].elements["NbHeureSolo"].value+" Heures"+"<BR><BR>");
w.document.write("N° de votre licence FFA : "+document.forms["2"].elements["NumLicenceFFA"].value+"<BR><BR>");
w.document.write("N° de votre brevet PPL : "+document.forms["2"].elements["NumPPL"].value+"<BR><BR>");
w.document.write("Réponse \"OUI\" au questionnaire santé : "+document.forms["2"].elements["QuestionnaireSante"].value+"<BR><BR>");
w.document.write("Date limite de validité de votre certificat médical : "+document.forms["2"].elements["DateCM"].value+"<BR><BR>");
w.document.write("Commentaires : "+document.forms["2"].elements["Commentaires"].value+"<BR><BR>");
w.document.write("</BODY>");
w.document.close();
w.print();
}
</script>


<script type="text/javascript">
// limiter de la longueur du texte dans les area
 function MaxLengthTextarea(objettextarea,maxlength){
  if (objettextarea.value.length > maxlength) {
    objettextarea.value = objettextarea.value.substring(0, maxlength);
    alert('Votre texte ne doit pas dépasser '+maxlength+' caractères!');
   }
}
</script>


<style type="text/css">
// Mettre en couleur des bordures des inputs mal saisis
function checkValue()
{
	input:required:focus:valid, input[pattern]:focus:valid {
	    border-color: green;
	    box-shadow: 0 0 2px 1px green;
	}

	input:required:focus:invalid, input[pattern]:focus:invalid {
	    border-color: red;
	    box-shadow: 0 0 2px 1px red;
	}
}
</style>

<script type="text/javascript">
    function hideHisto(){
        var histo = document.getElementById('histo');
        var result = document.getElementById('result');
            histo.style.display = 'none'
            if(result.style.display == 'none')
            result.style.display = 'block';
        }
</script>

<script type="text/javascript">
    function hideChoix(){
        var obj = document.getElementById('choixstage');
        var choix = document.getElementById('choix');   
            obj.style.display ='none';
            if(choix.style.display == 'none')
            choix.style.display = 'block';
    }
</script>

</head>

<body bgcolor="white" text="black" link="blue" vlink="blue" alink="red">

<form name="0" method="post" action="Inscription.php"> 

<p align="center"><font size="10">DEMANDE D'INSCRIPTION A UN STAGE</font><br>
	<font size="6">(Saison <?php echo date('Y') ?>)</font></p>
    
<p> </p>
        
        <p align="left"><font size="5"><b><u>Historique de stage :</u></b></font></p>

<div id="histo">
		<p>
		<LABEL for="NumANEG">N° ANEG :  </LABEL>
		<input type="text" name="NumANEG" maxlength="10" size="12" pattern="[0-9]{8}[_][0-9]" autofocus required placeholder="00000000_0" style="text-align:right"  onkeypress="refuserToucheEntree(event);" onchange="function checkValue()" />        
		<input type="submit" name="SendNumANEG" value="Votre historique de stage ..." />
		</p>
</div>

<?php     
//On récupère proprement le N° ANEG saisi, NULL si absent
$_POST['NumANEG'] = (isset($_POST['NumANEG'])) ? $_POST['NumANEG'] : NULL;
// On affecte la valeur reçue à la variable 
$NumANEG=$_POST['NumANEG']; 
?>	

<div id="result" style='display:none'>
<?php
    //  masque la div avec l'input de demande du N° ANEG
    if (isset($_POST['SendNumANEG'])) 
    echo '<script>hideHisto();</script>'; 
?>

<?php
	//RECUPERATION DE L'HISTORIQUE DES STAGES EFFECTUES
	//activation de l\'affichage des erreurs PHP
	error_reporting(E_ALL);
	ini_set('display_errors', TRUE);
	ini_set('display_startup_errors', TRUE);
    
    // met en "dur" le N° ANEG
    echo 'N° ANEG : '.$NumANEG.'<br>';

	//on inclut le fichier de connexion à la bdd
	require_once "../secure/cnxBdd.php";
	
	//préparation de la requête avec jointure, filtrage et classement
	$sql = 'SELECT * 
        FROM Inscriptions_VM
		LEFT JOIN Stages_VM ON Inscriptions_VM.ChoixStage = Stages_VM.NumStage
        WHERE Inscriptions_VM.NumANEG = :num 
		ORDER BY Stages_VM.DateDebut DESC';
	
	//tri des datas d\'après le NumANEG pour les avoir dans un tableau 
	$datas = array(':num'=>$NumANEG);

	//Execution de la requete
	try{
	$req = $bdd->prepare($sql);
	$req->execute($datas);

	//on récupère les résultats
	$result = $req->fetchAll();

	}catch(Exception $e){
		// en cas d'erreur :
		echo " <br>Erreur ! ".$e->getMessage();
		echo " <br>Les datas : " ;
		print_r($datas);
	}
			            	
	// Mise en forme des résultats pour les champs voulus
		if(!empty($result)){
        // Masque du tableau séparé pour ne pas le recopier à chaque ligne
        echo '
        <table style="border-collapse:collapse;" cellspacing="0">
                <tr> <!-- masque du tableau -->
        			<th style="border-width:1; border-color:black; border-style:solid;">N° ANEG</th>
        			<th style="border-width:1; border-color:black; border-style:solid;">N° Stage</th>
        			<th style="border-width:1; border-color:black; border-style:solid;">Stage ANEG ou CMCAS</th>
        			<th style="border-width:1; border-color:black; border-style:solid;">Type de Stage</th>
        			<th align="center" style="border-width:1; border-color:black; border-style:solid;">Nb d´heure de Vol</th>
        			<th style="border-width:1; border-color:black; border-style:solid;">Lieu du stage</th>
        			<th style="border-width:1; border-color:black; border-style:solid;">Du</th>
        			<th style="border-width:1; border-color:black; border-style:solid;">Au</th>
        		</tr>
            ';		    
        		    foreach($result as $uneLigne){
        // Suite du tableau de l\'historique après récupération des informations à partir du N° ANEG
        echo'
            <tr> <!-- lignes des résultats -->
                <td style="border-width:1; border-color:black; border-style:solid;">'.$uneLigne['NumANEG'].'</td>
                <td style="border-width:1; border-color:black; border-style:solid;">'.$uneLigne['NumStage'].'</td>
                <td style="border-width:1; border-color:black; border-style:solid;">'.$uneLigne['Action'].'</td>
                <td style="border-width:1; border-color:black; border-style:solid;">'.$uneLigne['TypeStage'].'</td>
                <td align="center" style="border-width:1; border-color:black; border-style:solid;">'.$uneLigne['NbHeureVolStage'].'</td>
                <td style="border-width:1; border-color:black; border-style:solid;">'.$uneLigne['LieuStage'].'</td>
                <td style="border-width:1; border-color:black; border-style:solid;">'. date('d-m-Y', strtotime($uneLigne['DateDebut'])).'</td>
    			<td style="border-width:1; border-color:black; border-style:solid;">'.date('d-m-Y', strtotime($uneLigne['DateFin'])).'</td>
    		</tr> 
        </table>';
        	}} else {
        // Si absence d'historique
        echo '<font size="6"><p align="left">Vous n\'avez pas d\'historique de stage</p></font>';
       }

?>
</div>
</form>

<form name="1" method="post" action="Inscription.php">

<?php     
//On récupère la valeur proprement du formulaire précédent NULL si absente
$_POST['NumANEG'] = (isset($_POST['NumANEG'])) ? $_POST['NumANEG'] : NULL;
// On affecte la valeur reçue à la variable 
$NumANEG=$_POST['NumANEG']; 
?>

<!-- pour récupérer le N° ANEG dans les données transmises -->
<input type="hidden" name="NumANEG" id="NumANEG" value="<?php echo $NumANEG; ?>"> 

<p><b><font size="5"><u><LABEL for="ListStage">Liste des stages proposés : </u></font></b></LABEL></p>

<ul>
    <li><font size="4"><b>Stages ANEG<br></b></font>(N° Stage - Type - Lieu - Date début - Date fin - SSA organisatrice)<br></li>
    <p style="margin-top:0;" align="left">
	<select width="250" name="ListStage" id="ListeStage" >
		<?php
		$currentY = date('Y');
		
		//Requête des stages ANEG de l'année
		$reponse = $bdd->query('SELECT NumStage, TypeStage, LieuStage, DateDebut, DATE_FORMAT(DateDebut, "%d/%m/%Y") AS DateDebut, DateFin, DATE_FORMAT(DateFin, "%d/%m/%Y") AS DateFin, SSA FROM Stages_VM WHERE Saison = '.$currentY.' AND Action = "Stage ANEG" AND Validation = "ACCEPTE"');
			while ($donnees = $reponse->fetch())
			{
		echo '<option value="'.$donnees["NumStage"].$donnees["TypeStage"].$donnees["DateDebut"].$donnees["DateFin"].$donnees["SSA"].'">'.$donnees["NumStage"]." - ".$donnees["TypeStage"]." - ".$donnees["LieuStage"]." - ".$donnees["DateDebut"]." - ".$donnees["DateFin"]." - ".$donnees["SSA"].'</option>';
		    }
    	?>
	</select>
	</p>
</ul>	

<ul>
    <li><font size="4"><b>Actions CMCAS<br></b></font>(N° Stage - Type - Lieu - Date début - Date fin - CMCAS organisatrice)<br></li>
    <p style="margin-top:0;" align="left">
	<select width="250" name="ListStage" id="ListeStage" >
		<?php
		$currentY = date('Y');
		
		//Requête des actions CMCAS de l'année
		$reponse = $bdd->query('SELECT NumStage, TypeStage, LieuStage, DateDebut, DATE_FORMAT(DateDebut, "%d/%m/%Y") AS DateDebut, DateFin, DATE_FORMAT(DateFin, "%d/%m/%Y") AS DateFin, CMCAS FROM Stages_VM WHERE Saison = '.$currentY.' AND Action = "Action CMCAS" AND Validation = "ACCEPTE"');
			while ($donnees = $reponse->fetch())
			{
		echo '<option value="'.$donnees["NumStage"].$donnees["TypeStage"].$donnees["DateDebut"].$donnees["DateFin"].$donnees["CMCAS"].'">'.$donnees["NumStage"]." - ".$donnees["TypeStage"]." - ".$donnees["LieuStage"]." - ".$donnees["DateDebut"]." - ".$donnees["DateFin"]." - ".$donnees["CMCAS"].'</option>';
		    }
		?>
	</select>
	</p>
</ul>
    <p> </p>
<p style="margin-top:0;" align="left"><font size="5"><b><u>Votre demande :</u></b></font></p>

<div id='choixstage'>
    <p>
        <LABEL for="ChoixStage">N° du stage souhaité :  </LABEL>
    	<select name="ChoixStage" id="ChoixStage" style="width:130px" size="1">
    		<?php 
    		$currentY = date('Y');
    		
    		//Requête pour afficher la liste des stages et des actions de l'année pour permettre de choisir
    		$reponse = $bdd->query('SELECT NumStage	FROM Stages_VM WHERE Saison = '.$currentY.' AND Validation = "ACCEPTE"');
    			while ($donnees = $reponse->fetch())
    			{
    		 echo '<option value="'.$donnees["NumStage"].'">'.$donnees["NumStage"].'</option>';
    			}
    		
    		$reponse->closeCursor(); // Termine le traitement de la requête
    			
    		?>
        </select> 
    
        <input type="submit" name="SendChoixStage" value="Validez votre choix de stage avant de poursuivre" />
    </p>
</div>

<div id='choix' style='display:none'>
    <!-- Mets en "dur" le stage choisi -->
    N° du stage souhaité : <b><?php echo $_POST['ChoixStage']; ?></b> <br><br>
</div>

</form>

<form name="2" method="post" action="EnvoiInscription.php"> 

<?php
//On récupère les valeurs proprement du formulaire précédent NULL si absentes
$_POST['NumANEG'] = (isset($_POST['NumANEG'])) ? $_POST['NumANEG'] : NULL;
$_POST['ChoixStage'] = (isset($_POST['ChoixStage'])) ? $_POST['ChoixStage'] : NULL;
// On affecte les valeurs reçues aux variables 
$NumANEG=$_POST['NumANEG']; 
$ChoixStage=$_POST['ChoixStage'];
?>

<!-- pour récupérer les données transmises -->
<input type="hidden" name="NumANEG" id="NumANEG" value="<?php echo $NumANEG; ?>"> 
<input type="hidden" name="ChoixStage" id="ChoixStage" value="<?php echo $ChoixStage; ?>"> 



<?php
    // conservation du N° ANEG en "dur" et de l'historique
    if (!empty($ChoixStage))
    echo '<script>hideHisto();</script>';
    // masque la div avec l'input de demande de choix de stage
    if (isset($_POST['SendChoixStage'])) 
    echo '<script>hideChoix();</script>'; 
?>

<?php
    // Requête pour savoir s'il y a des documents à mettre à disposition
    $sql = 'SELECT *
    FROM Documents
    WHERE NumStage = :choix AND Documentation ="OUI"';
	
	//tri des datas d'après le NumANEG pour les avoir dans un tableau 
	$datas = array(':choix'=>$ChoixStage);

	
	//Execution de la requete
	try{
	$req = $bdd->prepare($sql);
	$req->execute($datas);

	//on récupère les résultats
	$result = $req->fetchAll();

	}catch(Exception $e){
		// en cas d'erreur :
		echo " <br>Erreur ! ".$e->getMessage();
		echo " <br>Les datas : " ;
		print_r($datas);
	}
			            	
	// Affichage de la documentation
		if(!empty($result)){
		echo "<b>Document(s) relatif(s) au stage :</b><br> Suivant votre navigateur, le document pdf s'affichera ou se téléchargera."; 
	    $n=1;
	    foreach ($result as $docname) {
        echo '<p>  Document '.$n.' : ';
        echo '<a href="../VM/downloads/'.$docname['Filename'].'"><img src="../reader_icon.gif" height="44" width="37"></a> </p>';
        $n++;
	    }
    }
?>

 <p> </p>
<p style="margin-top:0;" align="left"><font size="5"><b><u>Vos informations :</u></b></font></p>

<p>	<!-- affichage des Nom et Prénom à partir du N° ANEG reçu -->	
	<?php  
		
		//préparation de la requête et des variables
		$sql = "SELECT DISTINCT Nom, Prenom 
				FROM Inscriptions_VM 
				WHERE NumANEG = :NumANEG ";

		$datas = array(':NumANEG'=>$NumANEG);

		//Execution de la requete
		try{
		  $req = $bdd->prepare($sql);
		  $req->execute($datas);
		  
		//une seule ligne de resultat attendue
		  $result = $req->fetch();

		}catch(Exception $e){
		  // en cas d'erreur :
		   echo " <br>Erreur ! ".$e->getMessage();
		   echo " <br>Les datas : " ;
		   print_r($datas);
		}

		//Utilisation du résultat de la requête
		if(!empty($result)){
			 echo '<p align="left"><label for="Nom">Nom  :  </label>';
			 echo '<input type="text" name="Nom" id="Nom" value="'.$result['Nom'].'"/>';
			 echo '           ';
			 echo '<label for="Prenom">Prénom :  </label>';
			 echo '<input type="text" name="Prenom" id="Prenom" value="'.$result['Prenom'].'"/></p>';
		}else{
//			 echo '<font size="6"><p align="left">Vous n\'avez pas d\'historique de stage ou vous n\'êtes pas membre du club</p></font>';
			 echo '<p align="left"><LABEL for="Nom">Nom : </LABEL>';
			 echo '<input type="text" name="Nom" id="Nom" size="25" />';
			 echo '           '; 
			 echo '<label for="Prenom">Prénom :  </label>';
			 echo '<input type="text" name="Prenom" id="Prenom" size="25" /></p>';
		}
		
		unset ($NumANEG);  //pour vider $NumANEG et ne pas avoir la rémanence du dernier Nom et Prénom
			
		$req->closeCursor(); // Termine le traitement de la requête			
	 ?>
	
</p>		

<p>
	<LABEL for="SSA">SSA d'appartenance : </LABEL>
	<select name="SSA" id="SSA" size="1" align="center">
	<option value="">---- SSA ----</option>
		<?php
		//Requête pour la liste des SSA
		$reponse = $bdd->query('SELECT SSA FROM Donnees WHERE SSA <>""');
			while ($donnees = $reponse->fetch())
			{
		echo '<option value="'.$donnees["SSA"].'">'.$donnees["SSA"].'</option>';
		    }
		?>
	</select>
</p>

<p>
	<LABEL for="CMCAS">CMCAS d'appartenance : </LABEL>
	<select name="CMCAS" id="CMCAS" size="1">
	<option value="">---- CMCAS ----</option>
		<?php
		//Requête pour la liste des CMCAS
		$reponse = $bdd->query('SELECT CMCAS FROM Donnees WHERE CMCAS <>""');
			while ($donnees = $reponse->fetch())
			{
		echo '<option value="'.$donnees["CMCAS"].'">'.$donnees["CMCAS"].'</option>';
		    }
		?>
	</select>
</p>

<p>
	<LABEL for="Tph">Téléphone : </LABEL>
	<input type="text" name="Tph" id="Tph" size="12" placeholder="00 00 00 00 00" pattern="[0-9]{2}[ ][0-9]{2}[ ][0-9]{2}[ ][0-9]{2}[ ][0-9]{2}" />
</p>

	
<p>
	<LABEL for="Mail">Mail : </LABEL>
	<input type="mail" name="Mail" id="Mail" size="30" />
</p>

        
<p>
	<LABEL for=" CS">Coefficient Social : </LABEL>
	<input type="text" name="CS" id="CS" size="10" style="text-align:right" pattern="[0-9]+" onchange="function checkValue()" placeholder="0000" />
	<font size="2">(Chiffres seulement et sans espace).</font>
</p>

<p>
	<LABEL for="NbHeureDC">Nb Heures en Double Commandes : </LABEL>
	<input type="text" name="NbHeureDC" id="NbHeureDC" size="10" style="text-align:right" pattern="[0-9]+" onchange="function checkValue()" placeholder="0000" /> 
	<font size="2">(Chiffres seulement et sans espace, nombre entier).</font>
</p>

<p>
	<LABEL for="NbHeureSolo">Nb Heures en Solo : </LABEL>
	<input type="text" name="NbHeureSolo" id="NbHeureSolo" size="10" style="text-align:right" pattern="[0-9]+" onchange="function checkValue()" placeholder="0000" /> 
	<font size="2">(Chiffres seulement et sans espace, nombre entier).</font>
</p>

<p>
	<LABEL for="NumLicenceFFA">N° Licence FFA : </LABEL>
	<input type="text" name="NumLicenceFFA" id="NumLicenceFFA" />
 <a href="https://www.ffa-aero.fr/" target="_blank">(FFA ... ???)</a> </p>

<p>
    Avez-vous répondu une (ou plusieurs) fois "OUI" au questionnaire de santé pour l'obtention/renouvellement de votre licence ?<br>
    NON <input type="radio" name="QuestionnaireSante" id="QuestionnaireSanteNON" value="NON" size="18" />      
	OUI <input type="radio" name="QuestionnaireSante" id="QuestionnaireSanteOUI" value="OUI" size="18" checked />
	(Si OUI, ou si vous n'êtes pas licencié FFA vous devrez fournir un Certiciat Médical de Non Contre-Indication au pilotage)
</p>

<p>
	<LABEL for="NumPPL">N° Brevet PPL : </LABEL>
	<input type="text" name="NumPPL" id="NumPPL" />
</p>

<p>
	<LABEL for="DateCM">Date de fin de validité du Certificat Médical : </LABEL>
	<input type="date" name="DateCM" id="DateCM" />
</p>

<p>
	<LABEL for="Commentaires">Avez-vous des commentaires ou des questions ? </LABEL><br>
	<textarea name="Commentaires" id="Commentaires" rows="3" cols="90" placeholder="Texte limité à 200 caractères maximum" onkeyup="javascript:MaxLengthTextarea(this, 200);"></textarea>
</p>
    <p style="margin-top:0; margin-bottom:0;"><br>
	<!-- affichage ou pas des boutons pour sauvegarder les saisies et les envoyer -->
	
	<?php
	//vérification pour affichage du bouton submit que $_POST['NumANEG'] est définie
	$NumANEG = !empty($_POST['NumANEG']) ? trim($_POST['NumANEG']) : NULL;
	
	if($NumANEG){ // Si la variable $NumANEG existe et n'est pas nulle/vide
		echo '<p><button type="button" onClick="popup();"><img src="../duplicator2.gif" width="65" height="47" align="absmiddle"></button><font size="4"> Pour garder une trace de votre envoi (mais n'oubliez pas de cliquer sur ENVOYER après !).</font></p>
		<p align="center"><b><font color="blue" size="5" >Envoyez votre demande ...  <button type="submit" name="Validation" title="Envoyer"><img src="activite.jpg" width="100" height="100" align="absmiddle"></button></font></p>';  
	} else { 
		echo '<button type="button" style="display:none" onClick="popup();" ><img src="../duplicator2.gif" style="display:none" width="65" height="47" align="absmiddle">
		<button type="submit" name="Validation" style="display:none" title="Envoyer"><img src="activite.jpg" alt="" style="display:none"/></button>'; 
	}
		
	?>
			

<p> </p>
	
	
</form>
<p> Vous pourrez envoyer vos documents/justificatifs sur la page suivante (après envoi de l'inscription).</p>
</body>
</html>


Je n'ai pas séparé les parties HTML, JS et PHP sinon ça risque d'être ch... à suivre.
Merci pour ton aide.
Daniel
0
danielos77 Messages postés 108 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 16 janvier 2024 2
31 mai 2020 à 00:35
Bonsoir Jordane45,
Désolé pour l'erreur pour le code, je ne savais pas (ou du moins, je reconnais ne pas avoir lu o u chercher à lire) les bonnes pratiques.
Avant de poster, j'avais bien essayé de sortir la balise </table> du code php avant le else mais sans succès...
Merci en tout cas pour l'apport des balises <thead> et <tbody> qu eje découvre et que je vais aller approfondir leur utilisation.
La progression peut te paraître lente mais je t'assure qu'elle est réelle. Merci aussi à yg_be.
Bon dimanche.
Daniel
0