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 :

Cases à cocher dans tableau dynamique


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2002
    Messages : 159
    Points : 62
    Points
    62
    Par défaut Cases à cocher dans tableau dynamique
    Bonjour,

    J'ai un tableau dynamique dans lequel j'ai des informations et une case à cocher par ligne.
    J'essaie de récupérer les valeurs de ces cases à cocher pour chaque ligne. Mais je récupère des valeurs erronées.
    Voici mon code en javascript de la case à cocher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    .
    .
    .
    	    nr.insertCell(2);
    	    nr.cells[2].className =	"col3";
    	    nr.cells[2].innerHTML	=	"<input type='checkbox' name='defautfourn[]' value='1'>";
    .
    .
    .
    Voici le code en php pour récupérer les valeurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    foreach ($_POST[idfourn] as $Clef => $idFourn)
    {
      if($_POST[defautfourn][$Clef]=="")
      {
        $_POST[defautfourn][$Clef]=0;
       }		
     
       echo $_POST[defautfourn][$Clef];	
    }
    Qqn sait d'où vient mon problème ?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est quoi le champ "idfourn" il n'apparait pas dans ce que tu nous montres.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2002
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    En fait idfourn est un champ caché du tableau dynamique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	    nr.insertCell(0);
    	    nr.cells[0].className =	"col3";
    	    nr.cells[0].innerHTML	=	"<input type='hidden' name='idfourn[]' size='2' value='" + id + "'>" + "<input type='hidden' name='codeclt[]' size='2' value='" + code + "'>" + code;

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    ah ba c'est normal que ca ne marche pas.
    Les checkbox ne renvoient rien si elles ne sont pas cochées donc les index de $_POST['defautfourn'] et de $_POST['idfourn'] ne correspondent pas.

    Il faut utiliser un index défini, par exemple ta variable "id" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nr.cells[2].innerHTML	=	"<input type='checkbox' name='defautfourn[" + id + "]' value='1'>";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    foreach ($_POST["idfourn"] as $idFourn)
    {
      if($_POST["defautfourn"][$idFourn]=="")
      {
        $_POST["defautfourn"][$idFourn]=0;
       }		
     
       echo $_POST["defautfourn"][$idFourn];	
    }
    Par contre attention les index non-numerique s'encadrent :

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2002
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    Salut,

    J'ai essayé de faire ce que tu m'as dit mais ça ne marche pas ...
    Ce que je comprends pas c'est que tu me dis de mettre "id" dans mon input ...
    alors que je récupère dejà des valeurs de input text ou de select sans mettre l'id.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     nr.insertCell(4);
    	    nr.cells[4].className   =	"col3";
    	    nr.cells[4].innerHTML	=	"<select name='packaging[]'>" + listepackaging + "</select>";
     
    	    nr.insertCell(5);
    	    nr.cells[5].className   =	"col3";
    	    nr.cells[5].innerHTML	=	"<input type='text' name='delaistandardfourn[]' size='2' value=''>";
     
    	    nr.insertCell(6);
    	    nr.cells[6].className   =	"col3";
    	    nr.cells[6].innerHTML	=	"<input type='checkbox' name='defautfourn[]'>";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $sqlFournisseur = "INSERT INTO articles_fournisseurs SET 
    				           article		 ='".$idArticle						  ."', 
    						   fournisseur	 ='".$_POST[idfourn][$Clef]			  ."', 
    						   prix			 ='".$_POST[prix][$Clef]			  ."', 
    						   devise   	 ='".$_POST[devise][$Clef]			  ."', 
    						   packaging	 ='".$_POST[packaging][$Clef]		  ."',
    						   delaistandard ='".$_POST[delaistandardfourn][$Clef]."',
    				           defaut		 ='".$_POST[defautfourn][$Clef]		  ."'";

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je m'excuse mais je ne vois aucun des points que je t'ai indiqué dans le code que tu me remontres, même pas les guillemets.

    alors que je récupère dejà des valeurs de input text ou de select sans mettre l'id.
    je ne crois pas que ton but soit des récupérer les valeurs erronés dont tu nous a parlé, il faut donc faire en sorte que idfourn et defaultfourn partagent un index commun.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Août 2002
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    J'avais fait les modifs que tu m'as dit sans aucun résultat.
    En réessayant ce que j'avais fait au départ, j'ai remarqué que je récupérais les cases cochées les unes à la suite des autres.
    Exemple, je cochais la 2 et la 3. Ca me retournait la 1 et la 2 .
    Ca me retourne en 1er les cases cochées.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est pour ca qu'il faut indexer les checkbox, car, je me repete, seuls les cases cochées sont transmises dans le POST.

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/12/2014, 22h03
  2. Controle active x case à cocher dans un tableau word
    Par legregos38 dans le forum VBA Word
    Réponses: 10
    Dernier message: 11/07/2014, 00h47
  3. case à cocher dans une case d'un tableau
    Par Msysteme dans le forum C#
    Réponses: 1
    Dernier message: 08/10/2011, 20h33
  4. Case à cocher dans tableau extensible
    Par dcarroz dans le forum InfoPath
    Réponses: 2
    Dernier message: 09/07/2008, 12h15
  5. Cases à cocher dans un tableau
    Par mali_67 dans le forum Langage
    Réponses: 19
    Dernier message: 03/03/2008, 11h38

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