Vous n'êtes pas identifié(e).
Bonjour,
Tout d'abord, veuillez m'excuser si ma question n'est pas au bon endroit, c'est la première fois que j'utilise un forum.
J'ai réussi (laborieusement, car je suis débutant) à construire une ébauche d'enquête PHP/mysql avec entre autre une case à cocher de type oui/non. Quand l'utilisateur remplit l'enquête, toutes les données sont correctement enregistrées dans ma base y compris celles de la case à cocher.
L'utilisateur doit pouvoir reprendre ou modifier son enquête par le biais d'un fichier edit_infos.php. Ce fichier fonctionne parfaitement pour tous les champs sauf pour les cases à cocher qui restent non cochées.
Je pense qu'il y a une erreur de syntaxe au niveau de la récupération des valeurs oui ou non de la base de données mais je ne vois pas où.
Merci par avance de toute aide que pourriez m'apporter.
Philippe
<label for="question">OUI ou NON</label><input type="radio" name="question" value="oui" <?php if (isset($_POST['question']) && $_POST['question'] == "oui") echo 'checked="checked"'; ?> /><br />
<label for="question">OUI ou NON</label><input type="radio" name="question" value="non" <?php if (isset($_POST['question']) && $_POST['question'] == "non") echo 'checked="checked"'; ?>/><br />
<input type="submit" value="Envoyer" />
</div>
</form>
</div>
<?php
}
}
else
{
?>
<div class="message">Pour accéder à cette page, vous devez être connecté.<br />
<a href="connexion.php">Se connecter</a></div>
<?php
}
?>
<div class="foot"><a href="<?php echo $url_home; ?>">Retour à l'accueil</a> - <a href="http://philippe.petit.free.fr/index.php">Accueil Enquete</a></div>
</body>
</html>
Hors ligne
Bonjour,
L'attribut checked="checked" s'applique uniquement à des balises <input type="checkbox" ..> et non à des boutons radio. De plus les boutons radio d'un même groupe gèrent automatiquement leur affectation de valeur. C'est à dire que si vous avez 3 boutons radios et que vous mettez à jour la valeur d'un à true, la valeur des 2 autres sera automatiquement mis à jour sans code supplémentaire. Par contre dans le cas de checkbox ceci n'est pas vrai et il faut mettre à jour la valeur de chaque checkbox comme cela a été fait dans votre code.
Il vous faut donc changer votre type="radio" en type="checkbox" si vous souhaitez que votre code actuel fonctionne. Un souci cependant, dans le cas où les deux cases à cocher ne doivent pas être cochées en même temps, il vous faudra rajouter le code qui gère cela en javascript.
Cordialement,
Jc.
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour,
Merci de votre réponse rapide.
J'ai changé "radio" en "checkbox" mais le résultat n'est pas probant. je ne récupère toujours pas la coche dans mon fichier edit_infos.php. Je pense donc que le problème vient d'ailleurs. Je n'ai pas de variables dans mon traitement, peut-être est-ce là le problème. Peut-être faut-il un champ spécifique dans la BDD. Je vais continuer de chercher des exemples de traitement des boutons radio car je ne suis pas programmeur.
Excusez moi de vous avoir fait perdre votre temps.
Et merci encore
Philippe
Hors ligne
Bonjour,
Vous ne m'avez pas fait perdre mon temps, mais normalement l'attribut value d'une checkbox cochée est "checked" et non "oui". Vérifiez tout de même en base de données car selon la façon dont c'est traité en code sous-jacent il se peut que la valeur stockée soit différente de celle envoyée par le formulaire.
De plus quand la valeur n'est pas modifiée et qu'elle est "oui" ou "non", c'est "yes" et "" qui sont envoyés par le formulaire pas "oui" et "non".
Dernière modification par Jc (18-05-2012 14:19:40)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Saluton,
Une petite astuce pour les programmeurs débutants, en phase de développement vous pouvez regarder le contenu de $_POST en entrée du script PHP de traitement de vos formulaires avec les fonctions print_r($_POST) ou var_dump($_POST) (ça vaut aussi avec $_GET évidemment).
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour,
Merci de vos réponses. Je vais étudier vos suggestions afin de trouver une solution côté code ou base de données.
Philippe
Hors ligne
Bonjour,
Je reviens vers vous pour vous faire savoir qu'après recherche sur différents forums, je pense avoir trouvé la solution à mon problème. En fait, 'checked="checked"' s'applique bien aussi aux boutons radios, afin de récupérer la coche en fonction de la bdd mysql. Je faisais simplement une erreur de syntaxe. La bonne syntaxe est :
et ceci quel que soit le type de champ de la bdd mysql (dans mon cas, un simple champ text.
Je ne sais pas comment mettre un "résolu" dans le fil, désolé.
Merci encore de vos précieux conseils. J'attaque maintenant le traitement des checkbox et ne manquerai pas de vous demander conseil si j'ai des soucis.
Philippe
Hors ligne