IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Mise à jour d'une table de base de données en fonction de checkboxes


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 590
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 590
    Points : 813
    Points
    813
    Par défaut Mise à jour d'une table de base de données en fonction de checkboxes
    Bonjour,
    J'ai un formulaire qui comprend un nombre variable de cases à cocher.
    Je veux mettre à jour une table en fonction des cases cochées. Si une case n'est pas cochée et que l'option est enregistrée dans la table, elle doit être effacée dans la table.La partie PDO fonctionne parfaitement. Par contre ma boucle de scrutation des cases à cocher ne fonctionne pas correctement: Seule la première case cochée est enregistrée et les suivantes sont systématiquement effacées de la table. Suis-je clair?
    Code : 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
    20
    		if( isset($post['save']) )
    		{
    			$Groups	= getLstGroups($_SESSION['user']['id']);		// Liste de tous les groupes possibles
    			$boxes	= $post['boxes'] ?? [];					// Liste des cases cochées
    			if($Groups)									// La liste peut être vide
    			{
    				foreach($Groups as $group)
    				{
    					if( in_array($group['id'], $boxes) )
    						$ctlA = insertGroup($_SESSION['idAddress'], $group['id']);
    					else
    					{
    						$ctlB = deleteGroup($_SESSION['idAddress'], $group['id']);
    					}
    					unset($ctlA, $ctlB);
    				}
    			}
    			header("Location: index.php?page=cardForm&idAddress={$_SESSION['idAddress']}&tab=3");
    			exit;
    		}

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 590
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 590
    Points : 813
    Points
    813
    Par défaut
    Ne cherchez pas, le problème n'est pas là. Il est dans le rafraichissement du formulaire après mise à jour. Désolé pour le dérangement.

  3. #3
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 785
    Points : 3 048
    Points
    3 048
    Par défaut
    Bonsoir

    Petite remarque sur cette partie :
    index.php?page=cardForm&idAddress={$_SESSION['idAddress']}&tab=3"

    À quoi sert de passer en paramètre (idAddress) quelque chose que tu as en session. L'intérêt est nul non ? De plus, du coup, je peux tenter de hacker l'url et de changer la valeur de idAddress..

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 590
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 590
    Points : 813
    Points
    813
    Par défaut
    Merci pour ta remarque que je vais prendre en compte. Tu me rappelles en même temps un autre point que je n'ai pas regardé et que je voudrais traiter prochainement: Comment masquer les URL/URI ?

  5. #5
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 785
    Points : 3 048
    Points
    3 048
    Par défaut
    Faut passer en POST (et donc l'action résultante de la soumission d'un formulaire).

    En GET tout est mis en querystring.

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 590
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 590
    Points : 813
    Points
    813
    Par défaut
    OK, merci

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Le post n'est en effet pas visible dans la barre d'adresse du navigateur, mais est toute même accessible et modifiable à qui le veut vraiment...
    Le POST peut également être fait en ajax (pas uniquement par un form).

  8. #8
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 785
    Points : 3 048
    Points
    3 048
    Par défaut
    Ou encore en curl ou d'autres moyens ;-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Mise à jour d'une table attachée dans la base
    Par Evalyss dans le forum Access
    Réponses: 12
    Dernier message: 10/08/2015, 09h18
  2. [AC-2010] Mise à jour d'une table identique d'une autre base de données
    Par mcharmat dans le forum IHM
    Réponses: 4
    Dernier message: 05/11/2014, 20h16
  3. Réponses: 1
    Dernier message: 23/11/2009, 09h47
  4. [MySQL] Mise à jour d'une table de base de données
    Par mannix2 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/08/2008, 18h47
  5. Réponses: 3
    Dernier message: 18/07/2007, 17h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo