Bonjour,
Je souhaite faire une checkbox suivi d'une validation par un bouton et l'envoie et l'insertion en BDD ou l'envoie et la modification en BDD.
Le problème c'est qu'avec mon code, il y a une insertion de ligne en continue malgré que je veuille simplement modifie la valeur en BDD du checkbox en fonction qu'il soit coché ou non.
Et j'ai également un problème sur l'affichage de la checkbox déjà coché lorsqu'en BDD la valeur est true.
Je vous montre mon code. Le soucis est dans la partie Newsletter.
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 // ------------------------------ Abonnement newsletter --------------- if(isset($_POST['abonner']) && $_SESSION['utilisateur']['id_membre'] != 1) { $valeur_checkbox = $_POST['checkbox_news']; $recup_abo = $mysqli->query("SELECT checkbox FROM newsletter WHERE id_membre=' " . $_SESSION['utilisateur']['id_membre'] . " ' "); $recherche_abo = $recup_abo->fetch_assoc(); $bdd_abo = $recherche_abo['checkbox']; if($valeur_checkbox == 'true'){ $modif_abo_bdd = executeRequete("UPDATE newsletter SET checkbox='$_POST[checkbox_news]' WHERE id_membre=' " . $_SESSION['utilisateur']['id_membre'] . " ' "); executeRequete("REPLACE INTO newsletter (id_newsletter,id_membre,checkbox) VALUES ('',' ". $_SESSION['utilisateur']['id_membre'] ." ','$_POST[checkbox_news]')"); } if($valeur_checkbox == 'false'){ $modif_abo_bdd = executeRequete("UPDATE newsletter SET checkbox='$_POST[checkbox_news]' WHERE id_membre=' " . $_SESSION['utilisateur']['id_membre'] . " ' "); } }
La valeur de l'id_newsletter est vide car je veux qu'il s'auto incrémente. Mais ça doit poser problème pour la modification ( désabonnement ).
Et la validation de celui-ci :
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <div id="newsletter"> <h2>S'abonner à la newsletter</h2> <form method="POST" action=""> <label for="resaisir_mdp">Souhaitez-vous recevoir des informations sur les promotions et les nouveautés du site par mail ? </label> <input type="checkbox" onchange="if(this.checked) this.value='true';else this.value='false';" value="false" name="checkbox_news"> <input type="submit" name="abonner" value="Valider"> </form> </div>
Je souhaite faire varier l'affichage de ce bouton. Si valeur = false => non coché, sinon la case sera déjà coché et pouvoir décoché cette case pour qu'en BDD la valeur change en false est que l'envoie de la newsletter ne se fasse pas.
Partager