[php] Checkbox et variable
Résolu/Fermé
Aroeris
Messages postés
38
Date d'inscription
mercredi 14 janvier 2009
Statut
Membre
Dernière intervention
4 juin 2013
-
26 juil. 2009 à 14:56
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 - 28 juil. 2009 à 22:28
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 - 28 juil. 2009 à 22:28
A voir également:
- [php] Checkbox et variable
- Easy php - Télécharger - Divers Web & Internet
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
13 réponses
giheller
Messages postés
1875
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
3 février 2024
142
26 juil. 2009 à 15:49
26 juil. 2009 à 15:49
bonjour,
// je mettrais ça ici pour vérifier ce que renvoit le POST
echo "<pre>";print_r($_POST);echo "</pre>";
for($i=0;$i<=4;$i++)
{
if(isset($_POST['taille'][$i]))
{
$var=secbdd($_POST['qte'][$i]);
$tail="insert into posseder values('".$_POST['taille'][$i]."','".$nump."',".$var.")";
$req3=mysql_query($tail);
}
}
// je mettrais ça ici pour vérifier ce que renvoit le POST
echo "<pre>";print_r($_POST);echo "</pre>";
for($i=0;$i<=4;$i++)
{
if(isset($_POST['taille'][$i]))
{
$var=secbdd($_POST['qte'][$i]);
$tail="insert into posseder values('".$_POST['taille'][$i]."','".$nump."',".$var.")";
$req3=mysql_query($tail);
}
}
Aroeris
Messages postés
38
Date d'inscription
mercredi 14 janvier 2009
Statut
Membre
Dernière intervention
4 juin 2013
26 juil. 2009 à 21:14
26 juil. 2009 à 21:14
Tres pratique cette petite ligne pour debugger !
Alors j'ai bien mon tableau de $taille[] qui contient les bonnes valeurs. Si je coche S et M dans cette exemple j'obtiens ceci : [taille] => Array
(
[0] => S
[1] => M
)
A priori le probléme vient du tableau $qte[] qui lui me retourne ceci :
[qte] => Array
(
[0] => 15
[1] =>
[2] => 30
[3] =>
)
C'est pour ça que certaines valeurs ne sont pas rentrés. Ou pas du tout.
Comment faire alors pour que le $taille[1] qui correspond a la taille M,recupere bien le bon nombre de quantité ?
Alors j'ai bien mon tableau de $taille[] qui contient les bonnes valeurs. Si je coche S et M dans cette exemple j'obtiens ceci : [taille] => Array
(
[0] => S
[1] => M
)
A priori le probléme vient du tableau $qte[] qui lui me retourne ceci :
[qte] => Array
(
[0] => 15
[1] =>
[2] => 30
[3] =>
)
C'est pour ça que certaines valeurs ne sont pas rentrés. Ou pas du tout.
Comment faire alors pour que le $taille[1] qui correspond a la taille M,recupere bien le bon nombre de quantité ?
giheller
Messages postés
1875
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
3 février 2024
142
26 juil. 2009 à 21:52
26 juil. 2009 à 21:52
Bonsoir,
pour récupérer une bonne valeur, il faut qu'elle ait été mise.
Vérifier si cette valeur est bien dans la table. car si on récupère rien c'est que soit la valeur n'est pas en table ou bien que la rprogramme n'utilise pas le bon nom du retour.
regardez les noms imprimés dans le print_r c'est celui qui est retourné dans le tableau.
pour récupérer une bonne valeur, il faut qu'elle ait été mise.
Vérifier si cette valeur est bien dans la table. car si on récupère rien c'est que soit la valeur n'est pas en table ou bien que la rprogramme n'utilise pas le bon nom du retour.
regardez les noms imprimés dans le print_r c'est celui qui est retourné dans le tableau.
Aroeris
Messages postés
38
Date d'inscription
mercredi 14 janvier 2009
Statut
Membre
Dernière intervention
4 juin 2013
27 juil. 2009 à 10:23
27 juil. 2009 à 10:23
En faite quand taille est a lindice 0, qte est aussi a l'indice 0 donc c bon, mais quand taille est a l'indice 1, l'indice 1 de qte est vide donc la requete ne marche pas. Et comme taille est fini, les autre valeurs de qte zont zappés.
En faite il faudrait que les indices de deux tableau soit les memes.
Mais je vois pas comment faire pour recuperer uniquement la valeur saisie de la textbox qui correspond a la bonne checkbox
En faite il faudrait que les indices de deux tableau soit les memes.
Mais je vois pas comment faire pour recuperer uniquement la valeur saisie de la textbox qui correspond a la bonne checkbox
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
giheller
Messages postés
1875
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
3 février 2024
142
27 juil. 2009 à 12:32
27 juil. 2009 à 12:32
Bonjour,
je pense qu'il faut revoir le formulaire. lescheckbox ne servent à rien.
<table border=\"0\" cellpadding=\"4\" cellspacing=\"9\">
<tr>
<td>S</td>
<td><input type="text" name="qteS" value=0 /></td>
<td>T36</td>
<td><input type="text" name="qteT36" value=0 ></td>
</tr>
<tr>
<td>M</td>
<td><input type="texte" name="qteM" value=0 /></td>
<td>T38</td>
<td><input type="text" name="qteT38" value=0 /></td>
</tr>
</table>
si les quantités sont renseignées (!=0 c'est comme si la checkbox avait été cliquée)
ensuite regarde ce que tu reçois pour mettre à jour ta base (le name te dire ce que c'est).
je pense qu'il faut revoir le formulaire. lescheckbox ne servent à rien.
<table border=\"0\" cellpadding=\"4\" cellspacing=\"9\">
<tr>
<td>S</td>
<td><input type="text" name="qteS" value=0 /></td>
<td>T36</td>
<td><input type="text" name="qteT36" value=0 ></td>
</tr>
<tr>
<td>M</td>
<td><input type="texte" name="qteM" value=0 /></td>
<td>T38</td>
<td><input type="text" name="qteT38" value=0 /></td>
</tr>
</table>
si les quantités sont renseignées (!=0 c'est comme si la checkbox avait été cliquée)
ensuite regarde ce que tu reçois pour mettre à jour ta base (le name te dire ce que c'est).
Aroeris
Messages postés
38
Date d'inscription
mercredi 14 janvier 2009
Statut
Membre
Dernière intervention
4 juin 2013
28 juil. 2009 à 21:40
28 juil. 2009 à 21:40
Salut,
je pense que tu as raison pr les checkbox, je les ai donc viré, et est modifié le code php en ce ci :
for($i=0;$i<=9;$i++)
{
if(isset($_POST['qte'][$i]) && !empty($_POST['qte'][$i]))
{
$tail="insert into posseder values('".$_POST['taille'] [$i]."','".$nump."',".$var.")";
$req3=mysql_query($tail);
}
}
Seulement comme d'habitude c'est la premeire valeur qui est rentré dans la base de donnée et pas le reste : /.
La je comprends pas trop, j'ai verifier si les donnés etait par rapport a mon lmd et c'est bon.
Certaine cellule du tableau $taille sont vides, ce serait a cause de ça ?
je pense que tu as raison pr les checkbox, je les ai donc viré, et est modifié le code php en ce ci :
for($i=0;$i<=9;$i++)
{
if(isset($_POST['qte'][$i]) && !empty($_POST['qte'][$i]))
{
$tail="insert into posseder values('".$_POST['taille'] [$i]."','".$nump."',".$var.")";
$req3=mysql_query($tail);
}
}
Seulement comme d'habitude c'est la premeire valeur qui est rentré dans la base de donnée et pas le reste : /.
La je comprends pas trop, j'ai verifier si les donnés etait par rapport a mon lmd et c'est bon.
Certaine cellule du tableau $taille sont vides, ce serait a cause de ça ?
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
28 juil. 2009 à 21:46
28 juil. 2009 à 21:46
Bonsoir :)
oui, je pense que c'est à cause de ca... donc =>
for($i=0;$i<=9;$i++)
{
if(isset($_POST['qte'][$i]) && !empty($_POST['qte'][$i]))
{
$MaTaille=0;
if (isset ($_POST['taille'] [$i]){$MaTaille=$_POST['taille'] [$i];}
$tail="insert into posseder values('".$MaTaille."','".$nump."',".$var.")";
$req3=mysql_query($tail);
}
}
oui, je pense que c'est à cause de ca... donc =>
for($i=0;$i<=9;$i++)
{
if(isset($_POST['qte'][$i]) && !empty($_POST['qte'][$i]))
{
$MaTaille=0;
if (isset ($_POST['taille'] [$i]){$MaTaille=$_POST['taille'] [$i];}
$tail="insert into posseder values('".$MaTaille."','".$nump."',".$var.")";
$req3=mysql_query($tail);
}
}
Aroeris
Messages postés
38
Date d'inscription
mercredi 14 janvier 2009
Statut
Membre
Dernière intervention
4 juin 2013
28 juil. 2009 à 22:06
28 juil. 2009 à 22:06
Alors j'ai virer les checkbox.
Je me suis trompé c'est qte qui a des valeur vide.
Comme j'ai mis <td><input type=\"text\" name=\"qte[]\" value=\"0\"/></td>, le premier formulaire c'est $_POST['qte"][0]
Du coup j'ai fait ça :
$taille = array();
$taille[0]= "S";
$taille[1]= "T36";
$taille[2]= "M";
$taille[3]= "T38";
$taille[4]= "L";
$taille[5]= "T40";
$taille[6]= "XL";
$taille[7]= "T42";
$taille[8]= "XXL";
$taille[9]= "T44";
for($i=0;$i<=9;$i++)
{
$var=secbdd($_POST['qte'][$i]);
if(isset($_POST['qte'][$i]) && !$_POST['qte'][$i] !=0)
{
$tail="insert into posseder values('".$taille[$i]."','".$nump."',".$var.")";
$req3=mysql_query($tail);
}
}
Mais maintenant toutes les tailles sont rentrés dans la bdd sauf que les quantités reste a 0.
Je comprend plus rien ...
edit : qud je dis toutes les tailles c'est que j'ai les 10 tailles, le numero du produit, et la quantité 0. Meme si la valeur a été saisie.
edit : 2 en mettant le value dans la balise input, est affiché "0" par defaut dans la box.
Je me suis trompé c'est qte qui a des valeur vide.
Comme j'ai mis <td><input type=\"text\" name=\"qte[]\" value=\"0\"/></td>, le premier formulaire c'est $_POST['qte"][0]
Du coup j'ai fait ça :
$taille = array();
$taille[0]= "S";
$taille[1]= "T36";
$taille[2]= "M";
$taille[3]= "T38";
$taille[4]= "L";
$taille[5]= "T40";
$taille[6]= "XL";
$taille[7]= "T42";
$taille[8]= "XXL";
$taille[9]= "T44";
for($i=0;$i<=9;$i++)
{
$var=secbdd($_POST['qte'][$i]);
if(isset($_POST['qte'][$i]) && !$_POST['qte'][$i] !=0)
{
$tail="insert into posseder values('".$taille[$i]."','".$nump."',".$var.")";
$req3=mysql_query($tail);
}
}
Mais maintenant toutes les tailles sont rentrés dans la bdd sauf que les quantités reste a 0.
Je comprend plus rien ...
edit : qud je dis toutes les tailles c'est que j'ai les 10 tailles, le numero du produit, et la quantité 0. Meme si la valeur a été saisie.
edit : 2 en mettant le value dans la balise input, est affiché "0" par defaut dans la box.
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
28 juil. 2009 à 22:13
28 juil. 2009 à 22:13
la quantité c'est $var c'est ca ?? si oui... ben il manque un $var=$_POST['qte'][$i] quelque part...
Aroeris
Messages postés
38
Date d'inscription
mercredi 14 janvier 2009
Statut
Membre
Dernière intervention
4 juin 2013
28 juil. 2009 à 22:19
28 juil. 2009 à 22:19
Non il etait au dessus du if si tu regardes bien.
Mais je l'ai remis dans le if.
$taille = array();
$taille[0]= "S";
$taille[1]= "T36";
$taille[2]= "M";
$taille[3]= "T38";
$taille[4]= "L";
$taille[5]= "T40";
$taille[6]= "XL";
$taille[7]= "T42";
$taille[8]= "XXL";
$taille[9]= "T44";
for($i=0;$i<=9;$i++)
{
if(isset($_POST['qte'][$i]) && !$_POST['qte'][$i] !=0)
{
$var=secbdd($_POST['qte'][$i]);
$tail="insert into lulu_posseder values('".$taille[$i]."','".$nump."',".$var.")";
$req3=mysql_query($tail);
}
}
Secbdd c'est une fonction qui pr limiter les injections sql et tt. Ttes mes valeurs saisies passent par ça donc ça vient pas de là.
Seulement ya qqch que je comprend pas j'ai bien mis dans la condition que si c'est different de 0 ça execute la requête.Alors comment ça se fait que ça me rentre toutes les tailles avec en quantité 0 ?
Mais je l'ai remis dans le if.
$taille = array();
$taille[0]= "S";
$taille[1]= "T36";
$taille[2]= "M";
$taille[3]= "T38";
$taille[4]= "L";
$taille[5]= "T40";
$taille[6]= "XL";
$taille[7]= "T42";
$taille[8]= "XXL";
$taille[9]= "T44";
for($i=0;$i<=9;$i++)
{
if(isset($_POST['qte'][$i]) && !$_POST['qte'][$i] !=0)
{
$var=secbdd($_POST['qte'][$i]);
$tail="insert into lulu_posseder values('".$taille[$i]."','".$nump."',".$var.")";
$req3=mysql_query($tail);
}
}
Secbdd c'est une fonction qui pr limiter les injections sql et tt. Ttes mes valeurs saisies passent par ça donc ça vient pas de là.
Seulement ya qqch que je comprend pas j'ai bien mis dans la condition que si c'est different de 0 ça execute la requête.Alors comment ça se fait que ça me rentre toutes les tailles avec en quantité 0 ?
giheller
Messages postés
1875
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
3 février 2024
142
28 juil. 2009 à 22:20
28 juil. 2009 à 22:20
bonsoir,
si tu mettais le résultat de :
echo "<pre>";print_r($_POST);echo "</pre>";
on pourrait voir exactement ce que te renvoit le formulaire.
si tu mettais le résultat de :
echo "<pre>";print_r($_POST);echo "</pre>";
on pourrait voir exactement ce que te renvoit le formulaire.
Aroeris
Messages postés
38
Date d'inscription
mercredi 14 janvier 2009
Statut
Membre
Dernière intervention
4 juin 2013
28 juil. 2009 à 22:26
28 juil. 2009 à 22:26
C'est bon ça marche !
J'ai changer de place deux trois trucs dans la boucle:
for($i=0;$i<=9;$i++)
{
$var=secbdd($_POST['qte'][$i]);
if(isset($_POST['qte'][$i]) && $var !=0)
{
$tail="insert into lulu_posseder values('".$taille[$i]."','".$nump."',".$var.")";
$req3=mysql_query($tail);
}
}
Je vous en suis tres reconnaissant a vous deux de m'aider : ) J'apprecie vraiment sans votre aide je serai dans la mouise ! Merci encore ; )
J'ai changer de place deux trois trucs dans la boucle:
for($i=0;$i<=9;$i++)
{
$var=secbdd($_POST['qte'][$i]);
if(isset($_POST['qte'][$i]) && $var !=0)
{
$tail="insert into lulu_posseder values('".$taille[$i]."','".$nump."',".$var.")";
$req3=mysql_query($tail);
}
}
Je vous en suis tres reconnaissant a vous deux de m'aider : ) J'apprecie vraiment sans votre aide je serai dans la mouise ! Merci encore ; )
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
28 juil. 2009 à 22:28
28 juil. 2009 à 22:28
Pas de soucis.. comme qui dirait.. on a fait que te guider.. tu à trouver la solution finale !! :D
Met ton post en résolu ;)
Met ton post en résolu ;)