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 :

Variable PHP à initialiser dans un code JavaScript


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut Variable PHP à initialiser dans un code JavaScript
    salut à tous!

    j'ai un problème complexe, mais comme c'est compliqué à expliquer, je vais déjà tenter d'expliquer ce à quoi j'ai pensé, une version "+ simple", pour voir si c'est possible au moins...

    au besoin je me fendrai d'explications complexes plus tard, et/ou dans un autre post!

    .php: tableau de checkbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <form id="form" method="post">
    for($i=0; $i<10; $i++)
    {
    echo "<input value=\"0\" name=\"test[]\" type=\"checkbox\" onchange=\"clickedLine($i);\"/>";
    }
    submit
    </form>
    .js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function clickedLine(indice)
    {
    je voudrais pouvoir faire un truc du genre "$test[indice] = 1"
    }
    DONC, est-ce possible? Comment?

    POUR RESUMER: je veux pouvoir récupérer dans $_POST TOUS mes test[] (de test[0] à test[9] donc!) et pas uniquement ceux cochés (checked)!
    -> les non cochés à 0
    -> les cochés à 1

    exemple:
    $_POST[test][0] = 0
    $_POST[test][1] = 0
    $_POST[test][2] = 1
    $_POST[test][3] = 1
    $_POST[test][4] = 1
    $_POST[test][5] = 0
    $_POST[test][6] = 0
    $_POST[test][7] = 1
    $_POST[test][8] = 0
    $_POST[test][9] = 0

    j'ai déjà testé plein de choses trouvées en lignes, mais je n'avance pas!

    alors peut être que ma solution est débile , c'est possible, mais si vous avez mieux n'hésitez pas.

    merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Lorsque ta case à cocher est cochée et que tu envois ta requête, ta variable poste a pour valeur 'on'.

    Tu peux faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    for ($i =0, $i <= $nbrCheckbox, $i++)
    {
           if ($_POST[test][$i] == 'on')
           {
                   $_POST[test][$i] =  1;
           }
           else
           {
                    $_POST[test][$i] =  0;
           }
    }
    Ou utiliser les Booléens ou vérifier si ta variable POST existe... A toi de voir

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    Non, déjà testé.

    SI tu ne mets pas de value aux checkbox
    ALORS les cases cochées renvoient ON en effet.

    SI tu mets une value=off aux checkbox
    ALORS les cochées renvoient OFF poru celle cochées.

    OR, je veux TOUTE la liste des cochées dans $_POST
    -> cochées
    -> ET NON cochées

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    Ok, je pense qu'il vaut mieux que je développe un peu l'explication malgré tout!

    en fait, j'ai une liste de 10 codes article + checkbox
    -> exemple: 123456 + checkbox

    mon but:
    1.) surligner de manière différente les lignes sélectionnées: OK
    2.) récupérer les articles sélectionnés

    les champs du formulaires:
    -> code article: passé en hidden (pour récupération par $8POST) + affichage en clair pour le user
    -> checkbox: indique si article coché ou pas

    le problème actuel: décallage entre $_POST['article'] & $_POST['test']
    -> $_POST['article'] contient TOUS les codes article puisque hidden
    -> $_POST['test'] ne contient QUE les N cases cochées

    -> exemple: je coche les articles n°1 & n° 5
    $_POST['article'] = 123456, 234567, 345678, 456789, 012345, 963258, 852147, 789654, 321456, 789321
    $_POST['test'] = on, on

    MAIS du coup impossible de faire le lien entre 123456 = ON & 012345 = ON

    tout ce que je sais c'est que 2 checkbox ont été cochées MAIS sans savoir quels articles!


    ce qu'il me faut:
    $_POST['article'] = 123456, 234567, 345678, 456789, 012345, 963258, 852147, 789654, 321456, 789321
    $_POST['test'] = on, off, off, off, on, off, off, off, off, off
    (on/off OU 1/0 peu importe!)



    .php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form id="form" method="post">
    for($i=0; $i<10; $i++)
    {
    echo "<td><input name=\"article[]\" type=\"hidden\" value=\"article$i\">article[$i]";
    echo "<input value=\"0\" name=\"test[]\" type=\"checkbox\" onchange=\"clickedLine($i);\"/>";
    }
    submit
    </form>

    .js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function clickedLine(indice)
    {
    je voudrais pouvoir faire un truc du genre "$test[indice] = 1" ou ON
    (si value de la checkbox initialisée à 0 ou OFF dans le formulaire)
    }
    voilà, j'espère que c'est plus clair

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    chaque article a un identifiant unique (id -> $idarticle) :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach($mesarticles as $unarticle]
    {
       // on récupère les infos de l'article (requete en Bdd ?) -> dont $idarticle
       $idarticle = $row['ID'];
       // ....
       echo '<input type="hidden" name="article['.$idarticle.']" value="'.$idarticle.'"/>';
       echo '<input type="checkbox" name="test['.$idarticle.']" value="1" />';
    }
    A la récupération :
    Les index des array $_POST['article'] et $_POST['test'] sont ainsi les même, et directement associé à l'id de l'article concerné.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    foreach($_POST['article'] as $index => $idarticle)
    {
       if(isset($_POST['test'][$index])){
          $_POST['test'][$index] = 1; // ou 'ON'
          echo 'case '.$idarticle.' cochée<br />';
       } else {
          $_POST['test'][$index] = 0; // ou 'OFF'
          echo 'case '.$idarticle.' NON cochée<br />';
       }
    }
    Dernière modification par Invité ; 22/01/2014 à 10h02.

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    ok, je pense avoir compris où tu voulais en venir!

    MAIS, mon exemple "article" c'était juste pour simplifier parce qu'en fait ma ligne de data "article" ne comprend pas juste une colonne ID, mais 10 colonnes en fait (ex: libellé, couleur, prix, fournisseur, délais, .......)+ la checkbox de sélection en fin de ligne.

    difficile de toutes les concaténer pour les passer comme name de la CB.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    chaque article a un identifiant unique (id -> $idarticle)
    J'ai modifié mon précédent message -> à relire, donc.

    En fait, ton problème est simple à résoudre.
    Mais au lieu de nous mettre un faux "exemple simplifié", mets-nous directement un extrait exploitable de ton formulaire.

  8. #8
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    pas de soucis à poster le code MAIS comme le copy/paste ne reprend pas les indentations du code, ça va être illisible...

    EDIT: ah non, ça passe maintenant, ok je m'y colle... le temps de virer mes commentaires du code!

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    pour le moment, les affichages des données (code, libellé, couleur, prix, etc...) sont bidons, générées depuis le for(), à terme bien sur elle viendront d'une table.

    .php
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
     
    <head>
    	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
     
    	<link   rel="stylesheet"   type="text/css" href="migration.css"/>
    	<script src="migration.js" type="text/javascript"></script>
    </head>
     
    <body>
    	<html>
     
    	<form id="form" method="post">
    		<fieldset>
    				<?php
    					$nbCol = 14;
    					$nbLig = 10;
    					if (count($_POST) > 0)	
    					{
     
    						for($i=0; $i<count($_POST['migration']); $i++)
    						{
     
    							if($_POST['migration'][$i] == 1)
    							{
    								echo "<br/>submit $i=" . $_POST['migration'][$i]. " pour code (". $_POST['code'][$i] .")";
    							}
    						}
    					}
    				?>
     
    				<table name="table" col="<?php echo $nbCol;?>" border="0">
     
    					<tr class="entete">
    						<td><img src="bt_m3_code.jpg">code</td>
    						<td><img src="bt_m3_code.jpg">libelle</td>
    						<td><img src="bt_m3_code.jpg">prix</td>
    						<td><img src="bt_m3_code.jpg">couleur</td>
    						<td><img src="bt_m3_code.jpg">état</td>
    						<td><img src="bt_m3_code.jpg">colisage</td>
    						<td><img src="bt_m3_code.jpg">fournisseur</td>
    						<td><img src="bt_m3_code.jpg">délais</td>
    						<td><img src="bt_m3_code.jpg">famille</td>
    						<td><img src="bt_m3_code.jpg">localisation</td>
    						<td><img src="bt_m3_code.jpg">Patientèles</td>
    						<td><img src="bt_m3_code.jpg">Précision</td>
     
    						<td></td>
    					</tr>
     
     
    					<?php
    						for($i=0; $i<$nbLig; $i++)
    						{
    							if ($i%2) echo "<tr id=\"tr$i\" class=\"lignePaire\">";
    							else	  echo "<tr id=\"tr$i\" class=\"ligneImpaire\">";
     
    							echo "<td><input name=\"code[]\" 		type=\"hidden\" value=\"code$i\">		code$i</td>";
    							echo "<td><input name=\"libelle[]\" 	type=\"hidden\" value=\"libelle$i\">	libelle$i</td>";
    							echo "<td><input name=\"prix[]\" 		type=\"hidden\" value=\"prix$i\">		prix$i</td>";
    							echo "<td><input name=\"couleur[]\" 	type=\"hidden\" value=\"couleur$i\">	couleur$i</td>";
    							echo "<td><input name=\"etat[]\" 		type=\"hidden\" value=\"état$i\">		état$i</td>";
    							echo "<td><input name=\"colisage[]\" 	type=\"hidden\" value=\"colisage$i\">	colisage$i</td>";
    							echo "<td><input name=\"fournisseur[]\"	type=\"hidden\" value=\"fournisseur$i\">fournisseur$i</td>";
    							echo "<td><input name=\"delais[]\" 		type=\"hidden\" value=\"delais$i\">		delais$i</td>";
    							echo "<td><input name=\"famille[]\" 	type=\"hidden\" value=\"famille$i\">	famille$i</td>";
    							echo "<td><input name=\"localisation[]\"type=\"hidden\" value=\"localisation$i\">	localisation$i</td>";
     
    							echo "<td><input id=\"cb$i\" name=\"migration[]\" type=\"checkbox\" onchange=\"clickedLine($i);\"/></td>";
     
    							echo "</tr>";	
    						}
    					?>
    				</table>
     
    				<p align="right">
    				<INPUT value="Cocher tout"   type="button" class="bouton" onClick="checkALL(<?php echo $i;?>);">
    				<INPUT value="Décocher tout" type="button" class="bouton" onClick="checkNONE(<?php echo $i;?>);">
    				</p>
     
     
    		</fieldset>
    		<p align="right"><INPUT value="Valider" type="submit" class="bouton"></p>
    	</form>
     
    	</body>
    </html>
    .js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //globales
    //********
    coulSur = '#86B404';	//ligne surlignée
    coulPai = '#C9CCD0';	//ligne paire Cf CSS
    coulImp = '#B7B8BA';	//ligne impaire Cf CSS
     
    function clickedLine(indice)
    {
    	var chkState = document.getElementById("cb"+indice).checked;
    	if (chkState)	{backgroundSelectedLine("tr"+indice);}
    	else			{backgroundNotSelectedLine(indice, "tr"+indice);}						
    }

  10. #10
    Invité
    Invité(e)
    Par défaut
    Le plus simple : "forcer" la numérotation des index avec $i.
    Code php : 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
    <?php
    	for($i=0; $i<$nbLig; $i++)
    	{
    		if ($i%2) echo "<tr id=\"tr$i\" class=\"lignePaire\">";
    		else	  echo "<tr id=\"tr$i\" class=\"ligneImpaire\">";
     
    		echo "<td><input name=\"code[$i]\" 		type=\"hidden\" value=\"code$i\">		code$i</td>";
    		echo "<td><input name=\"libelle[$i]\" 	type=\"hidden\" value=\"libelle$i\">	libelle$i</td>";
    		echo "<td><input name=\"prix[$i]\" 		type=\"hidden\" value=\"prix$i\">		prix$i</td>";
    		echo "<td><input name=\"couleur[$i]\" 	type=\"hidden\" value=\"couleur$i\">	couleur$i</td>";
    		echo "<td><input name=\"etat[$i]\" 		type=\"hidden\" value=\"état$i\">		état$i</td>";
    		echo "<td><input name=\"colisage[$i]\" 	type=\"hidden\" value=\"colisage$i\">	colisage$i</td>";
    		echo "<td><input name=\"fournisseur[$i]\"	type=\"hidden\" value=\"fournisseur$i\">fournisseur$i</td>";
    		echo "<td><input name=\"delais[$i]\" 		type=\"hidden\" value=\"delais$i\">		delais$i</td>";
    		echo "<td><input name=\"famille[$i]\" 	type=\"hidden\" value=\"famille$i\">	famille$i</td>";
    		echo "<td><input name=\"localisation[$i]\"type=\"hidden\" value=\"localisation$i\">	localisation$i</td>";
     
    		echo "<td><input id=\"cb$i\" name=\"migration[$i]\" type=\"checkbox\" onchange=\"clickedLine($i);\"/></td>";
     
    		echo "</tr>";	
    	}
    ?>

    Normalement, si les articles sont enregistrés en BDD, tu n'as pas besoin de transmettre toutes les infos via <input type="hidden"...>
    Seul l'identifiant unique (auto-incrémenté, s'il existe bien sûr) suffit.

  11. #11
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    Ecoute, désolé, mais mon print_r($_POST); continue de me montrer le décalage de départ:
    -> seul [migration] => Array ( [0] => on)
    -> alors pour tous les autres champs j'ai bien de [0] à [9]

    Le problème reste donc le même.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Montre le code html génére ("ctrl" + "U") du formulaire
    + code de récupération (PHP)

  13. #13
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    .html
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
     
    <head>
    	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
     
    	<link   rel="stylesheet"   type="text/css" href="migration.css"/>
    	<script src="migration.js" type="text/javascript"></script>
    </head>
     
    <body>
    	<html>
     
    	<form id="form" method="post">
    		<fieldset>
     
    				<table name="table" col="14" border="0">
     
    					<tr class="entete">
    						<td>code</td>
    						<td>libelle</td>
    						<td>prix</td>
    						<td>couleur</td>
    						<td>état</td>
    						<td>colisage</td>
    						<td>fournisseur</td>
    						<td>délais</td>
    						<td>famille</td>
    						<td>localisation</td>
     
    						<td></td>
    					</tr>
     
     
    					<tr id="tr0" class="ligneImpaire"><td><input name="code[0]" 		type="hidden" value="code0">		code0</td><td><input name="libelle[0]" 	type="hidden" value="libelle0">	libelle0</td><td><input name="prix[0]" 		type="hidden" value="prix0">		prix0</td><td><input name="couleur[0]" 	type="hidden" value="couleur0">	couleur0</td><td><input name="etat[0]" 		type="hidden" value="état0">		état0</td><td><input name="colisage[0]" 	type="hidden" value="colisage0">	colisage0</td><td><input name="fournisseur[0]"	type="hidden" value="fournisseur0">fournisseur0</td><td><input name="delais[0]" 		type="hidden" value="delais0">		delais0</td><td><input name="famille[0]" 	type="hidden" value="famille0">	famille0</td><td><input name="localisation[0]"type="hidden" value="localisation0">	localisation0</td><td><input id="cb0" name="migration[0]" type="checkbox" onchange="clickedLine(0);"/></td></tr><tr id="tr1" class="lignePaire"><td><input name="code[1]" 		type="hidden" value="code1">		code1</td><td><input name="libelle[1]" 	type="hidden" value="libelle1">	libelle1</td><td><input name="prix[1]" 		type="hidden" value="prix1">		prix1</td><td><input name="couleur[1]" 	type="hidden" value="couleur1">	couleur1</td><td><input name="etat[1]" 		type="hidden" value="état1">		état1</td><td><input name="colisage[1]" 	type="hidden" value="colisage1">	colisage1</td><td><input name="fournisseur[1]"	type="hidden" value="fournisseur1">fournisseur1</td><td><input name="delais[1]" 		type="hidden" value="delais1">		delais1</td><td><input name="famille[1]" 	type="hidden" value="famille1">	famille1</td><td><input name="localisation[1]"type="hidden" value="localisation1">	localisation1</td><td><input id="cb1" name="migration[1]" type="checkbox" onchange="clickedLine(1);"/></td></tr><tr id="tr2" class="ligneImpaire"><td><input name="code[2]" 		type="hidden" value="code2">		code2</td><td><input name="libelle[2]" 	type="hidden" value="libelle2">	libelle2</td><td><input name="prix[2]" 		type="hidden" value="prix2">		prix2</td><td><input name="couleur[2]" 	type="hidden" value="couleur2">	couleur2</td><td><input name="etat[2]" 		type="hidden" value="état2">		état2</td><td><input name="colisage[2]" 	type="hidden" value="colisage2">	colisage2</td><td><input name="fournisseur[2]"	type="hidden" value="fournisseur2">fournisseur2</td><td><input name="delais[2]" 		type="hidden" value="delais2">		delais2</td><td><input name="famille[2]" 	type="hidden" value="famille2">	famille2</td><td><input name="localisation[2]"type="hidden" value="localisation2">	localisation2</td><td><input id="cb2" name="migration[2]" type="checkbox" onchange="clickedLine(2);"/></td></tr><tr id="tr3" class="lignePaire"><td><input name="code[3]" 		type="hidden" value="code3">		code3</td><td><input name="libelle[3]" 	type="hidden" value="libelle3">	libelle3</td><td><input name="prix[3]" 		type="hidden" value="prix3">		prix3</td><td><input name="couleur[3]" 	type="hidden" value="couleur3">	couleur3</td><td><input name="etat[3]" 		type="hidden" value="état3">		état3</td><td><input name="colisage[3]" 	type="hidden" value="colisage3">	colisage3</td><td><input name="fournisseur[3]"	type="hidden" value="fournisseur3">fournisseur3</td><td><input name="delais[3]" 		type="hidden" value="delais3">		delais3</td><td><input name="famille[3]" 	type="hidden" value="famille3">	famille3</td><td><input name="localisation[3]"type="hidden" value="localisation3">	localisation3</td><td><input id="cb3" name="migration[3]" type="checkbox" onchange="clickedLine(3);"/></td></tr><tr id="tr4" class="ligneImpaire"><td><input name="code[4]" 		type="hidden" value="code4">		code4</td><td><input name="libelle[4]" 	type="hidden" value="libelle4">	libelle4</td><td><input name="prix[4]" 		type="hidden" value="prix4">		prix4</td><td><input name="couleur[4]" 	type="hidden" value="couleur4">	couleur4</td><td><input name="etat[4]" 		type="hidden" value="état4">		état4</td><td><input name="colisage[4]" 	type="hidden" value="colisage4">	colisage4</td><td><input name="fournisseur[4]"	type="hidden" value="fournisseur4">fournisseur4</td><td><input name="delais[4]" 		type="hidden" value="delais4">		delais4</td><td><input name="famille[4]" 	type="hidden" value="famille4">	famille4</td><td><input name="localisation[4]"type="hidden" value="localisation4">	localisation4</td><td><input id="cb4" name="migration[4]" type="checkbox" onchange="clickedLine(4);"/></td></tr><tr id="tr5" class="lignePaire"><td><input name="code[5]" 		type="hidden" value="code5">		code5</td><td><input name="libelle[5]" 	type="hidden" value="libelle5">	libelle5</td><td><input name="prix[5]" 		type="hidden" value="prix5">		prix5</td><td><input name="couleur[5]" 	type="hidden" value="couleur5">	couleur5</td><td><input name="etat[5]" 		type="hidden" value="état5">		état5</td><td><input name="colisage[5]" 	type="hidden" value="colisage5">	colisage5</td><td><input name="fournisseur[5]"	type="hidden" value="fournisseur5">fournisseur5</td><td><input name="delais[5]" 		type="hidden" value="delais5">		delais5</td><td><input name="famille[5]" 	type="hidden" value="famille5">	famille5</td><td><input name="localisation[5]"type="hidden" value="localisation5">	localisation5</td><td><input id="cb5" name="migration[5]" type="checkbox" onchange="clickedLine(5);"/></td></tr><tr id="tr6" class="ligneImpaire"><td><input name="code[6]" 		type="hidden" value="code6">		code6</td><td><input name="libelle[6]" 	type="hidden" value="libelle6">	libelle6</td><td><input name="prix[6]" 		type="hidden" value="prix6">		prix6</td><td><input name="couleur[6]" 	type="hidden" value="couleur6">	couleur6</td><td><input name="etat[6]" 		type="hidden" value="état6">		état6</td><td><input name="colisage[6]" 	type="hidden" value="colisage6">	colisage6</td><td><input name="fournisseur[6]"	type="hidden" value="fournisseur6">fournisseur6</td><td><input name="delais[6]" 		type="hidden" value="delais6">		delais6</td><td><input name="famille[6]" 	type="hidden" value="famille6">	famille6</td><td><input name="localisation[6]"type="hidden" value="localisation6">	localisation6</td><td><input id="cb6" name="migration[6]" type="checkbox" onchange="clickedLine(6);"/></td></tr><tr id="tr7" class="lignePaire"><td><input name="code[7]" 		type="hidden" value="code7">		code7</td><td><input name="libelle[7]" 	type="hidden" value="libelle7">	libelle7</td><td><input name="prix[7]" 		type="hidden" value="prix7">		prix7</td><td><input name="couleur[7]" 	type="hidden" value="couleur7">	couleur7</td><td><input name="etat[7]" 		type="hidden" value="état7">		état7</td><td><input name="colisage[7]" 	type="hidden" value="colisage7">	colisage7</td><td><input name="fournisseur[7]"	type="hidden" value="fournisseur7">fournisseur7</td><td><input name="delais[7]" 		type="hidden" value="delais7">		delais7</td><td><input name="famille[7]" 	type="hidden" value="famille7">	famille7</td><td><input name="localisation[7]"type="hidden" value="localisation7">	localisation7</td><td><input id="cb7" name="migration[7]" type="checkbox" onchange="clickedLine(7);"/></td></tr><tr id="tr8" class="ligneImpaire"><td><input name="code[8]" 		type="hidden" value="code8">		code8</td><td><input name="libelle[8]" 	type="hidden" value="libelle8">	libelle8</td><td><input name="prix[8]" 		type="hidden" value="prix8">		prix8</td><td><input name="couleur[8]" 	type="hidden" value="couleur8">	couleur8</td><td><input name="etat[8]" 		type="hidden" value="état8">		état8</td><td><input name="colisage[8]" 	type="hidden" value="colisage8">	colisage8</td><td><input name="fournisseur[8]"	type="hidden" value="fournisseur8">fournisseur8</td><td><input name="delais[8]" 		type="hidden" value="delais8">		delais8</td><td><input name="famille[8]" 	type="hidden" value="famille8">	famille8</td><td><input name="localisation[8]"type="hidden" value="localisation8">	localisation8</td><td><input id="cb8" name="migration[8]" type="checkbox" onchange="clickedLine(8);"/></td></tr><tr id="tr9" class="lignePaire"><td><input name="code[9]" 		type="hidden" value="code9">		code9</td><td><input name="libelle[9]" 	type="hidden" value="libelle9">	libelle9</td><td><input name="prix[9]" 		type="hidden" value="prix9">		prix9</td><td><input name="couleur[9]" 	type="hidden" value="couleur9">	couleur9</td><td><input name="etat[9]" 		type="hidden" value="état9">		état9</td><td><input name="colisage[9]" 	type="hidden" value="colisage9">	colisage9</td><td><input name="fournisseur[9]"	type="hidden" value="fournisseur9">fournisseur9</td><td><input name="delais[9]" 		type="hidden" value="delais9">		delais9</td><td><input name="famille[9]" 	type="hidden" value="famille9">	famille9</td><td><input name="localisation[9]"type="hidden" value="localisation9">	localisation9</td><td><input id="cb9" name="migration[9]" type="checkbox" onchange="clickedLine(9);"/></td></tr>				</table>
     
    				<p align="left">
    				<INPUT value="Cocher tout"   type="button" class="bouton" onClick="checkALL(10);">
    				<INPUT value="Décocher tout" type="button" class="bouton" onClick="checkNONE(10);">
    				</p>
     
     
    		</fieldset>
    		<p align="left"><INPUT value="Valider" type="submit" class="bouton"></p>
    	</form>
     
    	</body>
    </html>
    .php
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
     
    <head>
    	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
     
    	<link   rel="stylesheet"   type="text/css" href="migration.css"/>
    	<script src="migration.js" type="text/javascript"></script>
    </head>
     
    <body>
    	<html>
     
    	<form id="form" method="post">
    		<fieldset>
    				<?php
    					$nbCol = 14;
    					$nbLig = 10;
    					if (count($_POST) > 0)	
    					{
    print_r($_POST);
    						for($i=0; $i<count($_POST['migration']); $i++)
    						{
     
    							if($_POST['migration'][$i] == 1)
    							{
    								echo "<br/>submit $i=" . $_POST['migration'][$i]. " pour code (". $_POST['code'][$i] .")";
    							}
    						}
    					}
    				?>
     
    				<table name="table" col="<?php echo $nbCol;?>" border="0">
     
    					<tr class="entete">
    						<td>code</td>
    						<td>libelle</td>
    						<td>prix</td>
    						<td>couleur</td>
    						<td>état</td>
    						<td>colisage</td>
    						<td>fournisseur</td>
    						<td>délais</td>
    						<td>famille</td>
    						<td>localisation</td>
     
    						<td></td>
    					</tr>
     
     
    					<?php
    						for($i=0; $i<$nbLig; $i++)
    						{
    							if ($i%2) echo "<tr id=\"tr$i\" class=\"lignePaire\">";
    							else	  echo "<tr id=\"tr$i\" class=\"ligneImpaire\">";
     
    							echo "<td><input name=\"code[$i]\" 		type=\"hidden\" value=\"code$i\">		code$i</td>";
    							echo "<td><input name=\"libelle[$i]\" 	type=\"hidden\" value=\"libelle$i\">	libelle$i</td>";
    							echo "<td><input name=\"prix[$i]\" 		type=\"hidden\" value=\"prix$i\">		prix$i</td>";
    							echo "<td><input name=\"couleur[$i]\" 	type=\"hidden\" value=\"couleur$i\">	couleur$i</td>";
    							echo "<td><input name=\"etat[$i]\" 		type=\"hidden\" value=\"état$i\">		état$i</td>";
    							echo "<td><input name=\"colisage[$i]\" 	type=\"hidden\" value=\"colisage$i\">	colisage$i</td>";
    							echo "<td><input name=\"fournisseur[$i]\"	type=\"hidden\" value=\"fournisseur$i\">fournisseur$i</td>";
    							echo "<td><input name=\"delais[$i]\" 		type=\"hidden\" value=\"delais$i\">		delais$i</td>";
    							echo "<td><input name=\"famille[$i]\" 	type=\"hidden\" value=\"famille$i\">	famille$i</td>";
    							echo "<td><input name=\"localisation[$i]\"type=\"hidden\" value=\"localisation$i\">	localisation$i</td>";
     
    							echo "<td><input id=\"cb$i\" name=\"migration[$i]\" type=\"checkbox\" onchange=\"clickedLine($i);\"/></td>";
     
    							echo "</tr>";	
    						}
    					?>
    				</table>
     
    				<p align="left">
    				<INPUT value="Cocher tout"   type="button" class="bouton" onClick="checkALL(<?php echo $i;?>);">
    				<INPUT value="Décocher tout" type="button" class="bouton" onClick="checkNONE(<?php echo $i;?>);">
    				</p>
     
     
    		</fieldset>
    		<p align="left"><INPUT value="Valider" type="submit" class="bouton"></p>
    	</form>
     
    	</body>
    </html>
    print_r($_POST); pour clic/sélection article1 et article2
    [code]
    Array (
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     => Array ( [0] => code0 [1] => code1 [2] => code2 [3] => code3 [4] => code4 [5] => code5 [6] => code6 [7] => code7 [8] => code8 [9] => code9 ) [libelle] => Array ( [0] => libelle0 [1] => libelle1 [2] => libelle2 [3] => libelle3 [4] => libelle4 [5] => libelle5 [6] => libelle6 [7] => libelle7 [8] => libelle8 [9] => libelle9 ) [prix] => Array ( [0] => prix0 [1] => prix1 [2] => prix2 [3] => prix3 [4] => prix4 [5] => prix5 [6] => prix6 [7] => prix7 [8] => prix8 [9] => prix9 ) [couleur] => Array ( [0] => couleur0 [1] => couleur1 [2] => couleur2 [3] => couleur3 [4] => couleur4 [5] => couleur5 [6] => couleur6 [7] => couleur7 [8] => couleur8 [9] => couleur9 ) [etat] => Array ( [0] => état0 [1] => état1 [2] => état2 [3] => état3 [4] => état4 [5] => état5 [6] => état6 [7] => état7 [8] => état8 [9] => état9 ) [colisage] => Array ( [0] => colisage0 [1] => colisage1 [2] => colisage2 [3] => colisage3 [4] => colisage4 [5] => colisage5 [6] => colisage6 [7] => colisage7 [8] => colisage8 [9] => colisage9 ) [fournisseur] => Array ( [0] => fournisseur0 [1] => fournisseur1 [2] => fournisseur2 [3] => fournisseur3 [4] => fournisseur4 [5] => fournisseur5 [6] => fournisseur6 [7] => fournisseur7 [8] => fournisseur8 [9] => fournisseur9 ) [delais] => Array ( [0] => delais0 [1] => delais1 [2] => delais2 [3] => delais3 [4] => delais4 [5] => delais5 [6] => delais6 [7] => delais7 [8] => delais8 [9] => delais9 ) [famille] => Array ( [0] => famille0 [1] => famille1 [2] => famille2 [3] => famille3 [4] => famille4 [5] => famille5 [6] => famille6 [7] => famille7 [8] => famille8 [9] => famille9 ) [localisation] => Array ( [0] => localisation0 [1] => localisation1 [2] => localisation2 [3] => localisation3 [4] => localisation4 [5] => localisation5 [6] => localisation6 [7] => localisation7 [8] => localisation8 [9] => localisation9 ) [migration] => Array ( [1] => on [2] => on ) )

  14. #14
    Invité
    Invité(e)
    Par défaut
    Où est le traitement du formulaire ?

    [Edit] oups ! pas bien vu...
    Dernière modification par Invité ; 22/01/2014 à 15h21.

  15. #15
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    pour l'instant ça se limitait à ça (test):
    -> juste afficher le code ayant été coché
    -> Cf .php ci-dessus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if (count($_POST) > 0)	
    					{
    print_r($_POST);
    						for($i=0; $i<count($_POST['migration']); $i++)
    						{
     
    							if($_POST['migration'][$i] == 1)
    							{
    								echo "<br/>submit $i=" . $_POST['migration'][$i]. " pour code (". $_POST['code'][$i] .")";
    							}
    						}
    					}
    MAIS j'ai peut être quand trouvé comment utiliser ta version... même si $_POST['migration'] ne contient que les N éléments cochée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    for($i=0; $i<$nbLig; $i++)
    						{
    							if (isset($_POST['migration'][$i]))
    							{
    								if(strcmp($_POST['migration'][$i], "on") == 0)
    								{
    									echo "<br/>submit $i=" . $_POST['migration'][$i]. " pour code (". $_POST['code'][$i] .")";
    								}
    							}
                                                     }
    mais est-ce ergonomique de passer en revue TOUS les indices avec isset(), pour tester le "on" de ceux effectivement existants?

  16. #16
    Invité
    Invité(e)
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name=\"code[$i]\" 		type=\"hidden\" value=\"code$i\">

    Ce n'est pas count($_POST['migration']) qu'il faut prendre en compte, mais count($_POST['code']) -> où là, tu est sûr d'avoir TOUS les indices.

    Autrement dit :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach($_POST['code'] as $index => $value)
    {
    	if(isset($_POST['migration'][$index])) // si isset -> donc COCHE ! (pas d'autre vérification à faire !)
    	{
    		echo 'La case ayant le code : '.$value.' est cochée<br />';
    	}
    }
    Dernière modification par Invité ; 22/01/2014 à 16h03.

  17. #17
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    oui, plus simple finalement.

    MAIS attention:
    -> foreach = 'code' en effet
    -> isset = 'migration' quand même


    sinon tu affiches un message systématiquement pour toutes les lignes, et pas que pour celles cochées

  18. #18
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    Merci.

  19. #19
    Invité
    Invité(e)
    Par défaut
    Exact (erreur de copier-coller) -> corrigé ci-avant

  20. #20
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 523
    Points : 147
    Points
    147
    Par défaut
    ca prouve au moins que je suis l'affaire!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Peut-on récupérer une variable php dans un code javaScript?
    Par Marc22 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/02/2010, 11h02
  2. Affichage de la valeur d'une variable php dans un code javascript
    Par hastiok dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/12/2009, 12h59
  3. [PHP 5.0] Récupérer la valeur d'une variable php dans du code javascript
    Par HF974 dans le forum Langage
    Réponses: 4
    Dernier message: 08/03/2009, 11h46
  4. Réponses: 7
    Dernier message: 05/01/2008, 19h37
  5. [PHP-JS] variable php dans du code javascript
    Par Mut dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/07/2007, 15h11

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