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 :

Problème de checkbox


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2010
    Messages : 18
    Points : 8
    Points
    8
    Par défaut Problème de checkbox
    Salut à tous,

    J'ai un petite problème avec le checkbox. J'ai des checkbox qui contiennent des langue et je veux faire une requête d insertion mais malheureusement ça marche pas je sais pas pourquoi ?

    Voila mon petit code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $table="t_coordonner_langue"; 
    $table = split(',',$_GET["ids"]);
    Cette ligne permet de récupérer les id de checkbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $l=count($table);
    for($i=1 ; $i < $l ; $i++)
    {
    $query_p = "INSERT INTO  t_coordonner_langue.id_langue  
    VALUES 		
    ".$table[$i]."";
    $result_p = mysql_query($query_p);
    }
    Merci d'avance pour votre aide.

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    J'ai pas tout compris dans ton code et déjà ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $table="t_coordonner_langue"; 
    $table = split(',',$_GET["ids"]);
    $table change deux fois de valeurs !!! de plus évites de prendre split (voir manuel) mais disons que c ok, pour la requête il faut:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $query_p = "INSERT INTO  t_coordonner_langue.id_langue  
    VALUES 		
    '$table[$i]'";
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2010
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    premier mot je te remercier infiniment
    et pour mon code jais une formulaire d inscription que contiens des langues et quand le utilisateur choisir un ou plusieurs langue
    et dans la page de validation je veux récupéré les id de c'est langue
    pour inserts sur la base de donne par boucle

  4. #4
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Et la modif sur l'insert ça donne quoi ?
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2010
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    aucun résulta su vous avez une méthode mieux que ça aide moi svp

    et voila le code de la premier page
    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
    23
    24
    25
    <script type="text/javascript">
    function test(){
          var val ='';
          var etat = true;
          for (i = 0; i < document.forms[0].elements.length ; i++) {
               if(document.forms[0].elements[i].checked){
                        val =  val +','+ document.forms[0].elements[i].value ;
                        etat = false;
                 }
           }       
           if(etat == true){
              alert("Pour exécuter cette opération, vous devez sélectionner au moins un enregistrement . Pour sélectionner un ou plusieurs messages, il suffit de cocher la case située devant.");
           }
           else{
           window.location.href = 'valid_ajouter_personnele.php?ids='+val;
     }
     
     			}
    </script>
     
     
    <?php while($res_langues=mysql_fetch_array($execution_langues)){?>
                    <input type="checkbox" name="chk_langues" value="<?php echo $res_langues[0];?>" id="chk_langues"><?php echo $res_langues[1];?>
     
                    <?php }?>
    et voila le code de validation sure la 2em page

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $table = split(',',$_GET["ids"]);
     
    $l=count($table);
    							  	for($i=1 ; $i < $l ; $i++)
    								{
    								 $query_p = "INSERT INTO  t_coordonner_langue.id_langue  
    												VALUES 		
    												'$table[$i]'";
    								 $result_p = mysql_query($query_p);
    								 print $table;
    							  	}
     
     
    							   header('Location: ajouter_personnele.php');

  6. #6
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    le print de $table donne quoi ?
    (Enlève le de la boucle, pour le mettre avant le for, ça évitera un affichage à chaque tour de boucle ...
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  7. #7
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    que donne alert(val)?
    Le monde se divise en deux: ceux qui utilisent le tag et les autres.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2010
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    sur la barre de titre voila la résulta
    http://personnel:8888/valid_ajouter_...e.php?ids=,2,3
    et sure le printe

    Array

  9. #9
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Ok donc rien dans table ...
    Remplaces le split par un explode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var_dump($_GET["ids"]);
    $table = explode (",", $_GET["ids"]);
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2010
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    oui ca marche pour print et voila la resulta mais pour l insertion sa marche pas
    voila la résulta de print et le code si ill'ya des modife
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $table = var_dump($_GET["ids"]);
    $table = explode (",", $_GET["ids"]);
     
    $l=count($table);
    print $table;
    for($i=1 ; $i < $l ; $i++)
    {
     $query_p = "INSERT INTO  t_coordonner_langue.id_langue  
    VALUES 		
    '$table[$i]'";
     $result_p = mysql_query($query_p);
    }

  11. #11
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Non, non c pas ça que je t'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //$table = var_dump($_GET["ids"]);
    var_dump($_GET["id"]);
    et donne moi le résultat parceque là le print $table c n'importe quoi !!!

    Et puis j'ai vu autre chose sur le lien tu as 'ids=,2,3' pourquoi commencer par une , dans ce cas la première chaine sera vide forcement ...

    => modifier code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $l=count($table);
    print $table;
    for($i=1 ; $i < $l ; $i++)
    {
     $query_p = "INSERT INTO  t_coordonner_langue.id_langue  
    VALUES 		
    '$table[$i]'";
     $result_p = mysql_query($query_p);
    }
    par le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    foreach ($table as $champ){
         $query_p = "INSERT INTO  t_coordonner_langue.id_langue  
                          VALUES '$champ'";
         $result_p = mysql_query($query_p);
    }
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2010
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    vraiment jais rien compris jais remplace tt les ancien code par les codes que tu ma donnais mais voila la résulta

    string(6) ",1,2,3" NULL
    si ille ya une autre solution aide moi svp

  13. #13
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Code complet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var_dump($_GET["ids"]);
    $table = explode (",", $_GET["ids"]);
    var_dump($table);
     
    foreach ($table as $champ){
         if( !isnull($champ) ) {
               $query_p = "INSERT INTO  t_coordonner_langue.id_langue  
                                VALUES '$champ'";
               $result_p = mysql_query($query_p);
        }
    }
    Les var_dump c pour mieux comprendre tes manipulations
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2010
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    voila la resulta

    string(4) ",1,3" array(3) { [0]=> string(0) "" [1]=> string(1) "1" [2]=> string(1) "3" }
    et moi la j tais sélectionner juste deux langue 1 et 3

    mais il reste tjr le problème de l insertion

  15. #15
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Donc l'affichage c bon, la boucle est ok, reste la table, elle est comment la table 't_coordonner_langue' ?

    et puis change isnull par isempty car ta première chaine n'est pas null mais vide
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2010
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    voila la table lol
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE `t_coordonner_langue` (
      `id_coordonner_langue` int(50) NOT NULL AUTO_INCREMENT,
      `id_langue` int(50) DEFAULT NULL,
      `id_niveau_de_langue` int(50) DEFAULT NULL,
      `mle` int(50) DEFAULT NULL,
      PRIMARY KEY (`id_coordonner_langue`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ;

  17. #17
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    oui bon essayes plutôt le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //var_dump($_GET["ids"]);
    $table = explode (",", $_GET["ids"]);
    //var_dump($table);
     
    foreach ($table as $champ){
         if( !isempty($champ) ) {
               $query_p =  "INSERT INTO t_coordonner_langue (id_langue)
                                VALUES ('$champ')";
                $result_p = mysql_query($query_p);
        }
    }
    et au pire avec toutes les champs de ta table avec des valeurs null ...
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  18. #18
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2010
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    tjr ya pas d enregistrement
    la table vide
    "MySQL n'a retourné aucune ligne. "

  19. #19
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    $champ est de type chaine de caractères alors que l'id demandé est de type entier ...

    A convertir en entier pour voir ....
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  20. #20
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2010
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    non même problème.

Discussions similaires

  1. [SQL] Problème résultat checkbox dans requête SQL
    Par Skeud007 dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 02/07/2006, 15h02
  2. problème contrôle checkbox cliqué ou non
    Par mussara dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/04/2006, 16h16
  3. [ASP3] Problème de checkbox
    Par beegees dans le forum ASP
    Réponses: 2
    Dernier message: 23/03/2006, 16h42
  4. [xsl] Probléme De checkbox
    Par dimkha dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 27/01/2006, 12h09
  5. Problème sur CHECKBOX
    Par dede92 dans le forum Windows
    Réponses: 6
    Dernier message: 22/02/2005, 10h48

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