A voir également:
- Insérer une checkbox speciale dans while
- Insérer une vidéo dans powerpoint - Guide
- Insérer signature word - Guide
- Insérer liste déroulante excel - Guide
- Insérer sommaire word - Guide
- Insérer une image dans word sans bouger le texte - Guide
10 réponses
Utilisateur anonyme
4 oct. 2011 à 11:26
4 oct. 2011 à 11:26
Bonjour,
Déja je mettrais une radio, par une checkbox, comme ça même ce n'est pas coché vous aurez une valeur dans $_POST, oui ou non, pour le nom mettez compe_+le numéro, ensuite dans le tableau $_POST vous recherchez tous les éléments commençant par compe_ et vous récupérer le numéro qui correspond, et hop le tour est joué
echo '<input type="radio" name="compe_' .$idcomp. '" value="oui">oui<input type="radio" name="compe_' .$idcomp.'" value="non">non</td>';
Déja je mettrais une radio, par une checkbox, comme ça même ce n'est pas coché vous aurez une valeur dans $_POST, oui ou non, pour le nom mettez compe_+le numéro, ensuite dans le tableau $_POST vous recherchez tous les éléments commençant par compe_ et vous récupérer le numéro qui correspond, et hop le tour est joué
echo '<input type="radio" name="compe_' .$idcomp. '" value="oui">oui<input type="radio" name="compe_' .$idcomp.'" value="non">non</td>';
cette solution me parait excellente, je test ça ce soir et vous tiens informé ! merci quoi qu'il en soit de votre aide !
après pas mal d'essais en vain pour récupérer ma variable post dans un ableau, voici mon résultat :
if (isset ($_POST["comp_"]) {
foreach ($_POST["comp_"] as $key => $value) {
echo $value."<br />";
}
} else {
echo "Aucune case n'a été cochée.<br />";
}
cependant, je ne vois pas comment matérialisé l'id comp, je pense que le résultat que je viens d'afficher et le plus simple mais sans certitude, une idée sur la façon de procéder ?
if (isset ($_POST["comp_"]) {
foreach ($_POST["comp_"] as $key => $value) {
echo $value."<br />";
}
} else {
echo "Aucune case n'a été cochée.<br />";
}
cependant, je ne vois pas comment matérialisé l'id comp, je pense que le résultat que je viens d'afficher et le plus simple mais sans certitude, une idée sur la façon de procéder ?
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
17 oct. 2011 à 09:35
17 oct. 2011 à 09:35
bonjour,
dans ta boucle while je suppose que tu affiches les noms prenoms de chaque élève, est ce que dans ta base tu as aussi pour chaque élève un identifiant numérique id_eleve ?
si oui tu peux mettre pour le name de tes radio: (avec des [] ça te renverra un array )
et pour recupérer
si pas d'id_eleve tu peux mettre nom_prenom
dans ta boucle while je suppose que tu affiches les noms prenoms de chaque élève, est ce que dans ta base tu as aussi pour chaque élève un identifiant numérique id_eleve ?
si oui tu peux mettre pour le name de tes radio: (avec des [] ça te renverra un array )
while(....){ .... <input type="radio" name="competence['<php echo $id_eleve; ?>'] value="oui" /> <input type="radio" name="competence['<php echo $id_eleve; ?>'] value="non" checked /> //coché par defaut ... }
et pour recupérer
foreach ($_POST['competence'] as $key => $value) { echo $key. " compétence: ".$value."<br />"; }
si pas d'id_eleve tu peux mettre nom_prenom
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci,
cela me permet bien de récuper la valeur de chaque enregistrement, cependant, en désirant mettre à jour ma DB avec ceux-ci, php interprète bien la requete comme faite mais ma DB ne change pas voici :
echo '<input type="radio" name="comp_[ ' .$idcomp. ' ]" value="oui">oui <input type="radio" name="comp_[ ' .$idcomp. ' ]" value="non">non</td>';
et coté php :
...
$ideleve = $_SESSION['ideleve'];
foreach ($_POST['comp_'] as $key => $value) {
$idcomp = $key;
echo $idcomp ;
echo " compétence: " .$key. " Valeur : " .$value. " id élève : " .$ideleve. "<br />";
$requete = "UPDATE dossier SET acquis = '$value' WHERE ideleve = '$ideleve' AND idcomp = '$idcomp';";
$result = mysql_query($requete) or die ('impossible dexecuter la requete');
if ($result) {
echo '<h3>La compétence a été mis à jour.';
}else {
echo 'Nous n\'avons pu mettre les compétences à jour.';
}
}
quand je test à mettre une valeur nette à la place de la variable idcomp (exemple : idcomp = '4' ) , sa DB se met bien à jour.
Soit j'utilise mal le $key et j'ai mal compris son utilisation, soit je plante totalement.
cela me permet bien de récuper la valeur de chaque enregistrement, cependant, en désirant mettre à jour ma DB avec ceux-ci, php interprète bien la requete comme faite mais ma DB ne change pas voici :
echo '<input type="radio" name="comp_[ ' .$idcomp. ' ]" value="oui">oui <input type="radio" name="comp_[ ' .$idcomp. ' ]" value="non">non</td>';
et coté php :
...
$ideleve = $_SESSION['ideleve'];
foreach ($_POST['comp_'] as $key => $value) {
$idcomp = $key;
echo $idcomp ;
echo " compétence: " .$key. " Valeur : " .$value. " id élève : " .$ideleve. "<br />";
$requete = "UPDATE dossier SET acquis = '$value' WHERE ideleve = '$ideleve' AND idcomp = '$idcomp';";
$result = mysql_query($requete) or die ('impossible dexecuter la requete');
if ($result) {
echo '<h3>La compétence a été mis à jour.';
}else {
echo 'Nous n\'avons pu mettre les compétences à jour.';
}
}
quand je test à mettre une valeur nette à la place de la variable idcomp (exemple : idcomp = '4' ) , sa DB se met bien à jour.
Soit j'utilise mal le $key et j'ai mal compris son utilisation, soit je plante totalement.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
18 oct. 2011 à 22:16
18 oct. 2011 à 22:16
je ne vois pas d'erreur ou de mauvaise utilisation de $key, essayes en ôtant les espaces comme ceci:
tu risques de te retrouver avec ' 4 ' au lieu de '4'
echo '<input type="radio" name="comp_['.$idcomp.']" value="oui">oui <input type="radio" name="comp_['.$idcomp.']" value="non">non</td>';
tu risques de te retrouver avec ' 4 ' au lieu de '4'
après avoir valide, je me suis permis de faire un texte pour être sur que sa fonctionne :
compétence: 1 Valeur : oui id élève : 1
compétence: 2 Valeur : oui id élève : 1
compétence: 3 Valeur : oui id élève : 1
compétence: 4 Valeur : oui id élève : 1
compétence correspond a idcomp
en effet avec :
echo ".".$key.".";
dans la balise, je vois apparaitre 1 espace de chaque coté de l'id.
une idée pour les faires disparaitre ?
même en les faisant disparaitre avec trim, aucun meilleur résultat
bon au moins la je suis sur d'avoir uniquement l'id
compétence: 1 Valeur : oui id élève : 1
compétence: 2 Valeur : oui id élève : 1
compétence: 3 Valeur : oui id élève : 1
compétence: 4 Valeur : oui id élève : 1
compétence correspond a idcomp
en effet avec :
echo ".".$key.".";
dans la balise, je vois apparaitre 1 espace de chaque coté de l'id.
une idée pour les faires disparaitre ?
même en les faisant disparaitre avec trim, aucun meilleur résultat
bon au moins la je suis sur d'avoir uniquement l'id
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
Modifié par Alain_42 le 18/10/2011 à 22:43
Modifié par Alain_42 le 18/10/2011 à 22:43
si echo ".".$key.".";
te fait apparaitre un espace de chaque côté
oui c'est bien la qu'est le pb
si tu as bien supprimé les espaces dans la ligne que je t'avait indiquée, regardes du côté de la variable $idcomp qui te sert dans
echo '<input type="radio" name="comp_['.$idcomp.']" ....
est ce que tu ne l'a pas crée avec des espaces
perso quand je concatène je n'en mets pas
te fait apparaitre un espace de chaque côté
oui c'est bien la qu'est le pb
si tu as bien supprimé les espaces dans la ligne que je t'avait indiquée, regardes du côté de la variable $idcomp qui te sert dans
echo '<input type="radio" name="comp_['.$idcomp.']" ....
est ce que tu ne l'a pas crée avec des espaces
perso quand je concatène je n'en mets pas