4905 sujets

Sémantique web et HTML

Bonjour à tous,

J'ai un petit problème :
Dans le code ci-dessous, dès que je coche une case j'aimerais envoyer dans une bdd l'id correspondant, mais lorsque je coche une case, c'est toujours l'idée de la première checkbox qui est envoyée... J'ai beau chercher je ne trouve pas comment faire Smiley decu
Quelqu'un a une idée ?

<?php
include('req_msql/connexion.php');

$reponse = $bdd->query('SELECT * FROM exercice');
while ($donnees = $reponse->fetch())
{
?>

<div class="form-group">
 <div style="margin-top: 25px;" class="form-check">
<input class="form-check-input" type="checkbox" value="<?php echo $donnees['id_ex'];  ?>" id="id_echauffement" />
<label  class="form-check-label" for="gridCheck">
<span style="text-transform: uppercase;"><?php echo $donnees['nom_exercice'];  ?> <?php echo $donnees['id_ex'];  ?></span> - <a target="_blank" href="req_msql/generation_pdf_profil.php?id=<?php echo $donnees['id_ex'];  ?>" style="color: #212453; text-decoration: underline; cursor: pointer;">Aperçu de l'exercice</a>
</label>
</div>
</div>
<?php
}
$reponse->closeCursor();
?>
</div>

Modifié par MickaM (12 Jul 2018 - 10:53)
Bonjour MickaM,

C'est normal tes checkbox ont le même nom "id_echauffement"
Si je ne me trompe pas il faut que tu les nommes "id_echauffement[]"
à partir de ce moment là, coté serveur tu reçois un tableau de "id_echauffement"
$_POST["id_echauffement"] est un Array même s'il n'y a qu'une checkbox "id_echauffement" cochée (à vérifier, je ne suis pas sûr), si aucune checkbox cochée alors $_POST["id_echauffement"] n'existe pas
Après un peu de recherche j'ai trouvé une solution :
<div class="radio">
<label><input type="radio" value="<?php echo $donnees['id_ex']; ?>" name="optradio"><?php echo $donnees['nom_exercice'];?> <span data-toggle="modal" data-target="#myModal" style="color: #212453; text-decoration: underline; cursor: pointer;">Aperçu de l'exercice</span></label>
</div>


$.post(
'req_msql/sauvegarde_seance.php', // Un script PHP que l'on va créer juste après
{
id_echauffement : $('input[name=optradio]:checked').val()
},


La solution se trouve dans l'ajax.
Merci pour ta réponse Smiley smile