il faut mettre ce champ caché dans chaque formulaire si vous voulez récupérer la donnée sur toutes les pages.
un autre moyen est les sessions.
Mais dans ce cas pourquoi j'ai pu l'utiliser une première fois sans remettre l'input hidden ?
Voici comment est structuré mon code
else if(isset($_POST['rrdv'])){
$ids = $_POST['chspecialite'];
$requete = "SELECT idmed, nommedecin, libelle FROM medecin NATURAL JOIN specialite WHERE idspecialite = $ids";
$resultat = $connexion->query($requete);
$resultat->setFetchMode(PDO::FETCH_OBJ);
$spe = "";
if($medecin = $resultat->fetch()) {
$spe = $medecin->libelle;
}
echo '<div class="titre"> <p>Prendre rendez-vous avec un '.$medecin->libelle.'</p></div>';
echo '<ul> <table class="tablo">';
$resultat->execute();
while ($medecin = $resultat->fetch()) {
echo '<form action="site.php" method="post"><fieldset>';
echo '<input type="hidden" name="idmedi" value="'.$medecin->idmed.'"/><input type="text" name="nom" value="'.$medecin->nommedecin.'"readonly/><input type="submit" name="rdv" value="Prendre rendez-vous"/>';
echo '</fieldset></form>';
}
echo '</ul></table>';
}
Donc à cet endroit j'ai caché la valeur
else if(isset($_POST['rdv'])){
$object = new DateTime();
$object->modify('monday this week');
$date1 = $object->format("Y-m-d");
$newDate = new DateTime($date1);
$newDate->add(new DateInterval('P6D'));
$date7=$newDate ->format("Y-m-d");
$newDate = new DateTime($date1);
$newDate->add(new DateInterval('P1D'));
$date2=$newDate ->format("Y-m-d");
$newDate = new DateTime($date1);
$newDate->add(new DateInterval('P2D'));
$date3=$newDate ->format("Y-m-d");
$newDate = new DateTime($date1);
$newDate->add(new DateInterval('P3D'));
$date4=$newDate ->format("Y-m-d");
$newDate = new DateTime($date1);
$newDate->add(new DateInterval('P4D'));
$date5=$newDate ->format("Y-m-d");
$newDate = new DateTime($date1);
$newDate->add(new DateInterval('P5D'));
$date6=$newDate ->format("Y-m-d");
echo '<form action="site.php" method="post">';
echo '<div class="titre">Semaine du '.$date1.' au '.$date7.'</div>';
echo '<table class="tablo" border="1">';
echo '<caption>Prendre rendez-vous avec le docteur '.$_POST['nom'].'</caption>';
echo '<tr><th>Heure</th><th>Lundi</th><th>Mardi</th><th>Mercredi</th><th>Jeudi</th><th>Vendredi</th><th>Samedi</th></tr>';
$idmedi = $_POST['idmedi'];
for($i = 8; $i <= 18; $i++){
echo '<tr>';
echo '<td>'.$i.':00</td>';
$joursSemaine = array($date1, $date2, $date3, $date4, $date5, $date6);
foreach ($joursSemaine as $jour) {
$requete="SELECT * FROM rdv WHERE heure = $i AND date='$jour' AND idmed = $idmedi";
$resultat=$connexion->query($requete);
$ligne=$resultat->fetch(PDO::FETCH_ASSOC);
echo '<td>';
if(($ligne!==false)) {
echo 'Occupé';
} else {
echo '<input type="submit" value="Prendre rendez-vous" name="prendrerdv"/>';
}
echo '</td>';
}
echo '</tr>';
}
echo '</table></form>';
$resultat->closeCursor();
}
Ensuite je l'ai utilisé dans une autre page
else if (isset($_POST['valider']) && !empty($_POST['nss'])){
$nss=$_POST['nss'];
$requete="INSERT INTO rdv VALUES ('', '$nss',$idmedi,'$jour',$i)";
$resultat=$connexion->query($requete);
$resultat->setFetchMode(PDO::FETCH_OBJ);
echo'<div class="reponse">Le rendez-vous a été validé.</div>';
$resultat->closeCursor();
}
Et c'est dans cette partie là que ça me mets que la variable $idmedi n'est pas défini