Checkbox

raven44 Messages postés 315 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 21 mars 2011 - 26 août 2005 à 14:54
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 - 26 août 2005 à 22:29
Bonjour, j'aimerai pouvoir afficher une ou plusieurs checkbox coché dans mon formulaire mais je n'y arrive pas :



Lors de ma première venu sur mon formulaire, je coche une case,
j'enregistre 1 dans la table pour si elle a été coché, ca j'y arrive
bien seulement c'est après que ca se corse !!



Je fais ma requete, je recupere la valeur 1 mais après, il me manque le
bout de code me permettant d'afficher la checkbox coché !!



$query = "SELECT champs FROM table WHERE blablabla'";

$result = mysql_query ($query) or die (_DEF_SQL_ERR3);

list ($variable) = mysql_fetch_row($result);



if ($variable == '1') ?????? et la je met koi ?? voila ma question







Merci pour les idées ...

11 réponses

J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
26 août 2005 à 15:29
Salut,



Essaye un truc comme ça :



$query = "SELECT champs FROM table WHERE blablabla'";

$result = mysql_query ($query) or die (_DEF_SQL_ERR3);



list ($variable) = mysql_fetch_row($result);

if ($variable == '1') {

$chk = "checked";

} else {

$chk = "";

}

echo "$chk />";
0
raven44 Messages postés 315 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 21 mars 2011 1
26 août 2005 à 15:48
Merci beaucoup, c'est exactement ce que je voulais. Maintenant que ca l'a fait pour une, je voudrai que ca le fasse pour les 4 :

J'ai réalisé cela, ce code est censé me permettre de mettre 1 dans ma
table si les cases ont été cochés lors de mon premier passage sur le
formulaire :



for ($i=1;$i<5;$i++)

{

if ("this.form.$variable"+$i+".checked"==true)

{

$variable"+$i+"='1'; Mais Cette parti la ne marche pas !!! pkoi ?

}

}
0
raven44 Messages postés 315 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 21 mars 2011 1
26 août 2005 à 15:57
En faite, la totalite du code dans la boucle ne fonctionne pas, cependant, il entre bien dans la boucle !!



lorsque je print la ligne ou j'ai noté qu'elle ne marchait pas, il m'affiche 1234 ! une explication ???
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
26 août 2005 à 16:14
$variable"+$i+"='1'; ????????????????



Tu cherches à faire : ${"variable$i"} (ça s'appelle une variable de variable)



Mais là je trouve que tu devrais palucher quelque souces de PHP avant de te lancer tout azimute...

Une petite perte de temps au début pour avancer plus vite ensuite.



A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
26 août 2005 à 18:48
Oh !!! Du Php/Javascript !
Ca ne marchera jamais pour la bonne raison que Php s'execute du coté serveur et le javascript du coté Client



Alors, pour les cases :



<form action= "" method="post">



A

B

C

4




</form>



Et pour le code Php :

<?php

$sql = mysql_query ('SELECT champs FROM table WHERE blablabla') or die (mysql_error());

While(mysql_fetch_assoc($result)) { //assoc est plus rapide puisq'il ne retourne que le vrai nom des champs MySQL et non [0] ou [id] = x, ...

if($row == 1) {

echo ''; // checked="checked"
pour les normes XHtml. Idem pour le / avant le > de fin aux balises
simple (Je sais pas comment on dit :
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
26 août 2005 à 19:02
Hep! JoJo...



Je vais être désagréable et te pris de m'en excuser d'avance...

<hr size= "2" width="100%">
Performance : Une chose importante à noter est que l'utilisation de mysql_fetch_array() n'est pas significativement plus lent que l'utilisation de
[function.mysql-fetch-row.html mysql_fetch_row()], alors qu'il fournit des valeurs
significatives ajoutées.




C'est pas moi qui le dit...



En plus j'avais mis les '/' en fin des balises "auto-fermante" Alors euh... Bon pour le checked ="checked" ok!
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
26 août 2005 à 19:12
Desagreable ? Je ne vois pas, au contraire ^^



bah :

mysql_fetch_row() :


Array (


[a] => 1


[0] => 1


[b] => 2


[2] => 2


[c] => 3


[3] => 3


)



mysql_fetch_assoc() :


Array (


[a] => 1


[b] => 2


[c] => 3


)



3 contre 6. Imagine qu'il y en ait beaucoup plus ... et en plus c'est
souvent dans une boucle ... x_x. Donc mysql_fetch_assoc() est plus
rapide du sens qu'il prend moins de resources MySQL ^^
<hr>Si ma reponse te convient, merci de l'accepter !
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
26 août 2005 à 19:30
Non, pas une question de ressource

Il prend moins de mémoire... Sur le serveur Apache !!! Puisque ces fonctions lise toute la même ressource MySQL déjà créée.



Par contre l'intéret des tableaux créés par mysql_fetch_array :

Ils passent dans les moulinnettes du type each() ou list() bref les
truc qui ne fonctionnent qu'avec des tableaux indicés commençant à 0 et
n'ayant pas de "trou" dans la numérotation.

Ils sont indexable gentillement avec des mots humains. Pas besoin
d'aller compter les arguments dans la requète SQL pour savoir "c'est
quoi déjà le 12 indice???"



En générale je me limite à mysql_fech_assoc. qui limite la casse en
mémoire (Quoi que de nos jours, pour remplir les 500Mo de RAM avec un
forum... faut le faire!!!!). Puis il suffit de savoir que le certaines
fonctions de parcours de tableau seront ... génératrices de bugs!
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
26 août 2005 à 21:10
Pourquoi j'ai dis ressource moi ^^ mdr ! Oué, memoire ^^ Mais bon,
j'utilise toujours cette fonctions pour optimisé mes scripts. Par
contre dans tes scripts je vois que tu pourais les optimisés ^^ ( echo
'', $var, ''; (ce que je me rapelle ^^). Vais dire au fur et a mesur à
moi d'Ahto passe avant :D ). Bon, ca fonctionne raven44 ?

<hr>Si ma reponse te convient, merci de l'accepter !
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
26 août 2005 à 22:10
Hep JoJo...




J'ai mis un sacré moment à comprendre le "echo '', $var, ''; (ce que je me rapelle ^^). Vais dire au fur et a mesur à moi d'Ahto passe avant :D"



Quelle mémoire effectivement !!!! (Finalement tu as raison de ne pas
faire des mysql_fetch_array ;) Bon je vais essayer d'appliqur le
principe de Athomicro :

echo "Je", $ne, "concatènerai", $plus, "mes", $sorties, "d'écran";


echo "Je", $ne, "concatènerai", $plus, "mes", $sorties, "d'écran";


echo "Je", $ne, "concatènerai", $plus, "mes", $sorties, "d'écran";


echo "Je", $ne, "concatènerai", $plus, "mes", $sorties, "d'écran";


echo "Je", $ne, "concatènerai", $plus, "mes", $sorties, "d'écran";


echo "Je", $ne, "concatènerai", $plus, "mes", $sorties, "d'écran";





Et puis :

echo 'j\'utiliserai', $les, 'guillemets', $simples, 'qui', $ne, 'sont', $pas, 'interprétés';

echo 'j\'utiliserai', $les, 'guillemets', $simples, 'qui', $ne, 'sont', $pas, 'interprétés';

echo 'j\'utiliserai', $les, 'guillemets', $simples, 'qui', $ne, 'sont', $pas, 'interprétés';

echo 'j\'utiliserai', $les, 'guillemets', $simples, 'qui', $ne, 'sont', $pas, 'interprétés';

echo 'j\'utiliserai', $les, 'guillemets', $simples, 'qui', $ne, 'sont', $pas, 'interprétés';

echo 'j\'utiliserai', $les, 'guillemets', $simples, 'qui', $ne, 'sont', $pas, 'interprétés';

echo 'j\'utiliserai', $les, 'guillemets', $simples, 'qui', $ne, 'sont', $pas, 'interprétés';

echo 'j\'utiliserai', $les, 'guillemets', $simples, 'qui', $ne, 'sont', $pas, 'interprétés';
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
26 août 2005 à 22:29
Vais dire au fur et a mesur à moi d'Ahto passe avant :D"
Lol, les fautes ^^ : Je vais les dires au fur et à mesure, à moins qu'Anthomicro passe avant :D

J'ai surtout corrigé si Ahto, oups, Antho passe ^^




Quelle mémoire effectivement !!!! (Finalement tu as raison de ne pas
faire des mysql_fetch_array ;) Bon je vais essayer d'appliqur le
principe de Athomicro :
Bah, c'est de lui que je sais ca ^^



Bon, si on arretez le floooood ? ^^
<hr>Si ma reponse te convient, merci de l'accepter !
0
Rejoignez-nous