[RESOLU] CHECKBOX EN PHP

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] CHECKBOX EN PHP

Re: CHECKBOX EN PHP

par kouamkoff » 04 juil. 2019, 15:29

Excuses moi de tout ce retard ! j'étais en déplacement. Vraiment Merci. Ton code passe proprement. Encore Merci !

Re: CHECKBOX EN PHP

par Ryle » 30 juin 2019, 14:37

Non ça ne sera pas nécessairement des 1 et des 0 qui s'afficheront. Ça c'est juste pour stocker l'information en base de données. Quand tu viendras lire ton enregistrement en base de données, tu pourras facilement regarder si celui-ci a la valeur 1 ou 0 pour le radar de recul et avec un if() en php décider de ce que tu affiches à l'écran.

Tu peux ainsi facilement indiquer à l'utilisateur si le véhicule dispose d'un radar de recul avec un simple "Oui" ou "Non", ou même faire une phrase du genre "Ce véhicule dispose / ne dispose pas de radar de recul." indépendamment du fait qu'en base tu stockes 1/0 :)

Re: CHECKBOX EN PHP

par kouamkoff » 28 juin 2019, 23:52

Vraiment merci beaucoup !
Maintenant je souhaiterais savoir :
-Est-ce des 0 et des 1 qui s'afficheront sur ma page... si je veux récupérer les informations de mes checkbox et les ré afficher ?
juste savoir. Merci

Re: CHECKBOX EN PHP

par Ryle » 28 juin 2019, 16:11

Ok, au temps pour moi alors, ce n'est pas une liste de valeur, mais différentes informations indépendantes que tu gères. On oublie donc les crochets dans le nom du champ (même si on peut y arriver quand même de cette manière) et on va les nommer en fonction de ce à quoi ils servent (c'est plus facile à lire, à comprendre, à maintenir...) :
<form method="post">
<input type="checkbox" name="demarrage" value="1" /> démarrage
<input type="checkbox" name="climatisation" value="1" /> climatisation
<input type="checkbox" name="radar_recul" value="1" /> Radar de recul

<input type="submit" name="equipements" value="Valider">
</form>
Au niveau de php, tu recevras les valeurs pour chacune des cases qui auront été cochées dans les variables suivantes : $_POST['demarrage'], $_POST['climatisation'], $_POST['radar_recul']. Si une case n'est pas cochée, la variable ne sera pas définie, si la case est cochée, sa valeur sera 1 (spécifié dans l'attribut value).

Il faut donc contrôler les cases cochées en vérifiant les variables reçues. Tu pourras ensuite définir les valeurs que tu veux utiliser dans ta base.
<?php
...

if (isSet($_POST['demarrage']))
  $demarrage = 1; 
else
  $demarrage = 0;

// tu peux aussi l'écrire ainsi, ça revient au même que les 4 lignes ci-dessus :
$demarrage = isSet($_POST['demarrage']) ? 1 : 0;

// Et idem pour les autres cases 
$climatisation = isSet($_POST['climatisation']) ? 1 : 0;
$radar_recul = isSet($_POST['radar_recul']) ? 1 : 0;

// Une fois que tu as récupéré toutes tes cases (1 pour celles qui sont cochée et 0 par défaut quand elles ne le sont pas), tu peux les utiliser dans une requête SQL pour mettre à jour ta table en base de données

// insert si l'enregistrement n'existe pas encore
$sql = " INSERT INTO ta_table (ton_champ_demarrage, ton_champ_clim, ton_champ_radar, ...) VALUES (" . $demarrage . ", " . $climatisation . ", " . $radar_recul . ", ...)";
// update si l'enregistrement existe déjà et que tu veux le mettre à jour
$sql = " UPDATE ta_table SET ton_champ_demarrage  = " . $demarrage . ", ton_champ_clim = " . $climatisation . ", ton_champ_radar = " . $radar_recul . " ... WHERE id_de_ton_enregistrement = " . $id_enregistrement_a_mettre_a_jour;

...
?>
Pour les types de colonnes, tout dépend de ce que tu as besoin de stocker dedans.. VARCHAR c'est pour du texte de 255 caractères au maximum, INT pour des nombres pouvant être assez grands. Là tout ce qu'on veut savoir c'est si la case est cochée (1) ou pas (0) . Tu peux utiliser soit INT, soit TINYINT, soit un ENUM en autorisant uniquement les 2 valeurs 0 et 1...

Re: CHECKBOX EN PHP

par kouamkoff » 27 juin 2019, 21:08

Voici ce que je souhaiterais faire :
- mettre des caractéristiques de chaque véhicule dans une table "caractéristique"
- mettre chaque valeur de checkbox dans un champ de ma table. Par exemple le
<input type="checkbox" name="options[]" value="demarrage" /> démarrage dans le champ "demarrage" de ma table

<form>
<input type="checkbox" name="options[]" value="demarrage" /> démarrage
<input type="checkbox" name="options[]" value="climatisation" /> climatisation
<input type="checkbox" name="options[]" value="radar_recul" /> Radar de recul

<input type="submit" name="equipements" value="Valider">
</form>
Maintenant c'est le script php qui me pose problème et aussi la constitution de ma table (les valeurs de mes champs de ma base de données :VARCHAR, INT)

Re: CHECKBOX EN PHP

par Ryle » 27 juin 2019, 12:17

Ca dépend de beaucoup de choses et en particulier de la façon dont tu as construit ta base de données.

Est-ce que tu as une table dans laquelle tu as une colonne par checkbox ? ou une colonne avec toutes tes valeurs ? ou est-ce que c'est un enregistrement différent par checkbox ?

En fonction il faut soit faire une seule insertion et mettre à jour la ou les colonnes qui vont bien dans ta table, soit faire une insertion pour chaque case...

Bref, faut nous en dire un peu plus sur ce que tu as fait déjà :)

Re: CHECKBOX EN PHP

par kouamkoff » 27 juin 2019, 01:21

Enfin une personne qui me répond ! Merci bien Ryle pour le commencement. C'est déjà un grand pas.
Maintenant comment insérer les cases cochées dans ma base de donnée(script php) ?
Je ne maitrises pas la manière de faire pour les checkbox. Merci de m'aider

Re: CHECKBOX EN PHP

par Ryle » 26 juin 2019, 17:26

Hello !

Le plus simple pour gérer une liste de checkbox, c'est dans ton formulaire, de donner le même nom à tes cases à cocher en ajoutant des crochets à ceux-ci :
<input type="checkbox" name="case[]" value="1" /> Ma case n°1
<input type="checkbox" name="case[]" value="2" /> Ma case n°2
<input type="checkbox" name="case[]" value="3" /> Ma case n°3
Toutes les cases s'appellent ainsi "case[]" et tu vas ainsi pouvoir côté php récupérer un tableau de valeur en fonction des cases qui auront été cochée.
if (isSet($_POST['case']) {
  foreach ($_POST['case'] as $val) {
    echo 'La case n° ' . $val . ' a été cochée.<br />';
  }
}

CHECKBOX EN PHP

par kouamkoff » 25 juin 2019, 15:46


Salut ! Je suis nouveau dans ce groupe et c'est donc ma première publication.
Je suis coincé pour la création d'un formulaire avec des "checkbox". Je ne sais comment procéder et surtout comment les insérer dans ma base de données, pour ensuite les ré-afficher sur une autre page sous un format de liste non-ordonné (par exemple :
-
-
-
-)
Merci de bien vouloir m'aider, j'ai vraiment besoin d'aide :? :?
Des exemples précis seraient les bienvenus.