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 :

Checkbox qui modifie valeur de plusieurs ID


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 36
    Par défaut Checkbox qui modifie valeur de plusieurs ID
    Bonjour j'ai un petit soucis avec mon formulaire qui consiste en résumé à attribuer la valeur 1 au id qui ont été sélectionnés. Pour cela je les fais passer par l'URL, les id passe bien dans l'URL mais les valeurs ne sont attribué qu'a un unique ID

    voici le code de la checkbox
    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
    21
    22
    $reponse = mysql_query("SELECT id, nom, prenom, date_de_naissance, sexe, classe, sport, statut, convocation FROM eleves WHERE statut= 0 AND classe = '".mysql_real_escape_string($classe)."' AND sport = '".mysql_real_escape_string($sport)."'");
    $rows    = array();
    $ligne=0;
    $hsc     = function($p) { return htmlspecialchars($p, ENT_QUOTES, 'utf-8'); };
     
    while($row = mysql_fetch_array($reponse))
    {   
        $rows[] = <<<html
    	<form method="get" action="publicationconvo.phpid={$row['id']}">
     
    <tr><center>
        <td>{$hsc(++$ligne)}</td>
        <td>{$hsc($row['nom'])}</td>
        <td>{$hsc($row['prenom'])}</td>
        <td>{$hsc($row['classe'])}</td>
    	<td><center><input type="checkbox" name="id" value={$row['id']}></td>
     
     
        
     
        
    html;
    et celui qui doit faire la modif

    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
    <?php
    try
    {
        $bdd = new PDO('mysql:host=localhost;dbname='test', '', '');
    }
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }
     
    // Insertion du message à l'aide d'une requête préparée
    $id = (isset($_GET['id'])) ? (int)$_GET['id'] : 0;
    if ($id)
    {
        $req = $bdd->prepare('UPDATE eleves SET convocation = 1 WHERE id = :id');    
        $req->execute(array(':id' => $id));
    }
    
    ?>
    Je ne trouve pas mon erreur j’espère que vous pourrez m'aider

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    euh c'est normal qu'à chaque tour de boucle tu créés un nouveau formulaire ? (En plus tu ne fermes pas le précédent...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $rows[] = <<<html
    	<form method="get" action="publicationconvo.phpid={$row['id']}">
    Quand tu dis
    id qui ont été sélectionnés
    c'est parce qu'il y en a plusieurs à traiter parce que ton deuxième code ne le laisse pas supposer

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 36
    Par défaut
    j'ai fais des petites modif et oui il est vrai que le second code ne fonctionne que pour une unique id.

    J'ai demander qu'on m'affiche l'id selectionné avec var_dump($id); et lorsque j'ai par exemple cet URL http://atractus.fr/as/Private/public...ieu=&id=3&id=4 il va m'afficher int(4). Ne vous préoccupez par de date et lieu c'est des variable que je vais rentrer plus tard.

    Il y a t-il une fonction qui permet de prendre chaque valeur de l'URL au lieu de la dernière ? J'ai plutôt l'impression qu'il n'arrive pas à lire les précédentes..

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par WebDup Voir le message
    Il y a t-il une fonction qui permet de prendre chaque valeur de l'URL au lieu de la dernière ? J'ai plutôt l'impression qu'il n'arrive pas à lire les précédentes..
    Ben c'est normal vu que les arguments d'une URL sont récupérés sous forme de tableau (clé -> valeur) et que dans le cas de clés identiques, c'est le dernier qui a parlé qui a raison.
    Donc quand le parseur atteint id=3 ton tableau sera $_GET['id'] = 3 puis il continue et tombe sur id=4 ce qui fera que $_GET['id'] aura pour valeur 4.
    Note que dans un tableau les clés sont obligatoirement uniques.

    une solution de contournement, utiliser un tableau :
    ?id[]=3&id[]=4
    ce qui fera que tu auras un tableau dans $_GET['id']

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 36
    Par défaut
    Elles ne sont pas identiques car ce code (qui vien de toi en plus) ou j'ai rajouté une ligne determine une checkbox pour chaque id donc avec une valeur différente qui est la valeur de l'ID.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <tr><center>
        <td>{$hsc(++$ligne)}</td>
        <td>{$hsc($row['nom'])}</td>
        <td>{$hsc($row['prenom'])}</td>
        <td>{$hsc($row['classe'])}</td>
    	<td><center><input type="checkbox" name="id" value= {$row['id']}></td>
     
    <tr>
    Je ne vois pas vraiment comment faire avec le tableau

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Fais comme ça dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="id[]" value="{$row['id']}">
    Et tu auras un tableau $_GET['id']

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

Discussions similaires

  1. Modifier valeur de plusieurs variables référencées en macro
    Par giallorossi dans le forum Développement
    Réponses: 7
    Dernier message: 30/08/2013, 11h34
  2. Liste deroulante qui modifie les valeurs de plusieur autres listes
    Par luan220 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/08/2008, 19h06
  3. Réponses: 2
    Dernier message: 24/08/2007, 14h25
  4. Réponses: 2
    Dernier message: 10/06/2007, 19h41
  5. fonction qui modifie les valeurs de combos <select>
    Par NicoO_O dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/05/2007, 13h02

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