[RESOLU] 2 formulaires qui ne s'affichent pas après une validation

tonton5131
Invité n'ayant pas de compte PHPfrance

06 nov. 2015, 18:06

Bonjour,
Comme je l'indique dans le sujet j'ai 2 formulaires sur une même page.
Dans le premier formulaire l'utilisateur clique sur un bouton radio (il y en a 2) qui permettent d'afficher le résultat d'une requête SELECT dans un tableau d'un autre formulaire .
Dans le second formulaire il y a textarea ou l'on peut saisir.
Quand je valide le second formulaire je récupère bien mes variables qui me servent à la mise à jour d'une table.
Je voudrai que mes deux formulaires s'affichent après cette validation.
voici tout le code de ma page
<?php
include("connect.php");
$mois = date('m');
$vrai = "";
if (isset($_POST['selection'])) $selection = $_POST['selection'];
else $selection = "";
if (isset($_POST['ma_saisie'])) $ma_saisie = $_POST['ma_saisie'];
else $ma_saisie ="";
if (isset($_POST['lancer'])){
$_SESSION['selection'] = $selection;

}
if (isset($_POST['choix'])) $choix = $_POST['choix'];
else $choix = "";
if (isset($_POST['enregistrer'])){
//variables pour la mise à jour de la table
echo "id du message : "; echo $_POST['choix'];
echo '<br> la saisie effectuée : ';
echo $_POST['ma_saisie'];
echo '<br> id de la personne qui répond : ';
echo $_SESSION['id_utilisateur']; // utilisé pour la mise à jour de la table message
}

?>
<div style="margin-left:5px;margin-top:20px;width:77em;height:110px;background-color:red;position:absolute">
Sélectionner les messages que vous souhaitez voir :<br> <label style="font-size:11px;color:brown">info :les messages de plus d'un an ne sont pas conservés</label><br>
<form name="messages" action="index.php?page=messagerie" method="POST">
<input type="radio" name="selection" value="1" <?php if (isset($_POST["selection"])) { if ($_POST['selection'] == 1){ echo 'checked = "checked"';}}?>> Tous les messages sans réponses<br>
<input type="radio" name="selection" value="2" <?php if (isset($_POST["selection"])) { if ($_POST['selection'] == 2){ echo 'checked = "checked"';}}?>> Messages sans réponses du mois en cours<br><br>
<input type="submit" name="lancer" value="Afficher ma sélection" >
<p></p>
</form>
</div>
<div style="margin-left:5px;margin-top:130px;width:100%;background-color:yellow">
<form name="messages" action="index.php?page=messagerie" method="POST">
<table style="border:none" >
<?php
if ((isset($_POST['selection'])) AND ($_POST['selection']== 1)){
echo '<tr><td class="titre" style="width:60px">Choix</td> <td class="titre" style="width:80px">Date</td><td class="titre" style="width:190px">Emetteur</td><td class="titre" style="width:319px">Message</td><td class="titre" style="width:319px">Texte réponse</td></tr>';
$requete = "SELECT * FROM messages WHERE texte_reponse ='' ";
$resultat = $mysqli->query($requete) or die ('Erreur '.$requete.' '.$mysqli->error());
$vrai = 1;
}
else if ((isset($_POST['selection'])) AND ($_POST['selection']== 2)){
echo '<tr><td class="titre" style="width:60px">Choix</td> <td class="titre" style="width:80px">Date</td><td class="titre" style="width:190px">Emetteur</td><td class="titre" style="width:319px">Message</td><td class="titre" style="width:319px">Texte réponse</td></tr>';
$requete = "SELECT * FROM messages WHERE texte_reponse ='' AND date LIKE '%$mois%' ";
$resultat = $mysqli->query($requete) or die ('Erreur '.$requete.' '.$mysqli->error());
$vrai = 1;
}
if ($vrai ==1){
while ($row = mysqli_fetch_array($resultat)){
$id = $row['id'];
$date = $row['date'];
$date_explosee = explode("-",$date);
$my_date = $date_explosee[2].'/'.$date_explosee[1].'/'.$date_explosee[0];
$nom = $row['nom'];
$prenom =$row['prenom'];
$texte = $row['texte'];
?><tr><td class="ligne"><input type="radio" name="choix" value='<?php echo $id;?>'> <?php echo $id;?></td><td class="ligne"><?php echo $my_date;?></td><td class="ligne"><?php echo $prenom; echo ' '; echo $nom;?></td><td class="ligne"><?php echo $texte?></td><td class="ligne"><textarea name="ma_saisie" style="width:317px;font-size:12px" rows="4"><?php echo $ma_saisie;?></textarea></td></tr>
<?php
}
}
echo '</table>';
echo '<input type="submit" name="enregistrer" value="Enregistrer ma réponse" style="margin-right:5px;float:right">';
echo '</form>';
echo '</div>';
?>
Quelqu'un pour m'aider ?

Mammouth du PHP | 2703 Messages

06 nov. 2015, 18:33

il faut rajouter au second formulaire un champ caché <input type="hidden"> avec le contenu de $_POST['selection']
ainsi le test
if ((isset($_POST['selection'])) AND ($_POST['selection']== 1)){
retournera true