formulaire => name [RESOLU]

formulaire => name [RESOLU] - HTML/CSS - Programmation

Marsh Posté le 05-07-2005 à 15:41:43    

soit l'input suivant : (générer par un script)

Code :
  1. <input type="checkbox" name="Tout le monde[x_accept]" checked="checked">


 
lorsque je POST ca, mon "Tout le monde" devient "Tout_le_monde"
Ce qui est assez génant puisque ca devrait etre utilisé par un script...
 
Une idée ?


Message édité par nORKy le 06-07-2005 à 09:40:44
Reply

Marsh Posté le 05-07-2005 à 15:41:43   

Reply

Marsh Posté le 05-07-2005 à 15:45:18    

Les espaces sont à proscrire dans les noms de champs, ces noms se retrouvant ensuite dans les noms des variables PHP; et... comment tu veux que $Tout le monde[x_accept] ou même $_POST['Tout le monde[x_accept]'] puisse fonctionner ?

Reply

Marsh Posté le 05-07-2005 à 16:00:50    

j_lecruel a écrit :

Les espaces sont à proscrire dans les noms de champs, ces noms se retrouvant ensuite dans les noms des variables PHP; et... comment tu veux que $Tout le monde[x_accept] ou même $_POST['Tout le monde[x_accept]'] puisse fonctionner ?


 
ca fonctionne bien pourtant mis a part ces espaces.
et ca génère pas $_POST['Tout le monde[x_accept]']
mais $_POST[Tout_le_monde][x_accept]
 
voici un print_r de $_POST avec d'autres valeurs que "tout le monde"

Code :
  1. array
  2. (
  3.     [Administrateur] => Array
  4.         (
  5.             [f_accept] => on
  6.             [d_accept] => on
  7.             [x_accept] => on
  8.             [r_accept] => on
  9.             [w_accept] => on
  10.         )
  11.     [SYSTEM] => Array
  12.         (
  13.             [x_accept] => on
  14.         )
  15.     [Tout_le_monde] => Array
  16.         (
  17.             [d_accept] => on
  18.             [x_accept] => on
  19.             [r_accept] => on
  20.         )


 
Et normalement, on a le droit a des espaces en php dans les tableaux.
Apparement, le probleme vient au moment du POST..
il faudrait une astuce pour contourner ces probleme..


Message édité par nORKy le 05-07-2005 à 16:02:12
Reply

Marsh Posté le 05-07-2005 à 16:03:44    

Tu évites les espaces dans les noms stou, pourquoi tu cherches compliqué ?


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 05-07-2005 à 16:18:49    

plainsofpain a écrit :

Tu évites les espaces dans les noms stou, pourquoi tu cherches compliqué ?


 
c'est pas moi, c'est windows qui cherche le compliqué !
Pourquoi donné des noms d'utilisateur avec des espaces dedans ?!
PS : mon prog est pour travaillers sur les ACL

Reply

Marsh Posté le 05-07-2005 à 17:43:08    

hannnnnnnn couillon le name c'est pour donner au champ la possibilité d'être traité après.
si tu veux traiter autrement c'est un value.
 
je crois ke T mal barré dans l'analyse de ton truc

Reply

Marsh Posté le 05-07-2005 à 17:47:19    

gatsusat a écrit :

hannnnnnnn couillon le name c'est pour donner au champ la possibilité d'être traité après.
si tu veux traiter autrement c'est un value.
 
je crois ke T mal barré dans l'analyse de ton truc


 
lol !!!
tu as raison !!!
dans les value, les espaces ne sont pas esquivé !
Je n'ai pas pensé aux value, car pour moi une checkbox, c'est soit "on" soit "off"..
 
merci !

Reply

Marsh Posté le 05-07-2005 à 17:53:10    

tu fais comment pour recuperer ta valeur ??? hein ?? voila
 
en fait plusieurs checkbox peuvent avoir le meme name et lors de l'envoi au serveur on a :  
 
macheckbox = valeur1,valeur2,valeur3

Reply

Marsh Posté le 06-07-2005 à 09:39:23    

gatsusat a écrit :

tu fais comment pour recuperer ta valeur ??? hein ?? voila
 
en fait plusieurs checkbox peuvent avoir le meme name et lors de l'envoi au serveur on a :  
 
macheckbox = valeur1,valeur2,valeur3


 
beh, une checkbox n'a pas vraiment de valeur. Si elle n'est pas coché, sont entré "name" n'est pas créé. Donc, je m'en fou de la valeur :)
 
mais bon, j'ai trouvé la solution a mon problème, elle se trouve bien dans le name
voici donc ce que mon script génère

Code :
  1. <input type="checkbox" name="mods[Tout le monde][w_accept]">


 
en rajoutants ce mods, ce qui est entre crochet n'est plus "traité" et donc je garde mes espaces et autre caractères spéciaux
voici mon tableau $_POST avec plusieurs checkbox yant le nom d'utilisateur (ici Tout le monde) et un droit (ici w_accept) différent.

Code :
  1. Array
  2. (
  3.     [mods] => Array
  4.         (
  5.             [Administrateur] => Array
  6.                 (
  7.                     [f_accept] => on
  8.                     [d_accept] => on
  9.                     [x_accpet] => on
  10.                     [r_accept] => on
  11.                     [w_accept] => on
  12.                 )
  13.             [SYSTEM] => Array
  14.                 (
  15.                     [x_accpet] => on
  16.                 )
  17.             [Tout le monde] => Array
  18.                 (
  19.                     [d_accept] => on
  20.                     [x_accpet] => on
  21.                     [r_accept] => on
  22.                 )
  23.         )


 
exactement ce que je voulais ! je peux ainsi parcour facilement chaque utilisateur.
Merci encore pour vos précisions

Reply

Marsh Posté le 06-07-2005 à 09:49:15    

nORKy a écrit :

beh, une checkbox n'a pas vraiment de valeur. Si elle n'est pas coché, sont entré "name" n'est pas créé. Donc, je m'en fou de la valeur :)


 
faut arrêter de prendre des cours sur debutant.com
 
une checkbox aura la valeur vide ou null si elle n'est pas cochée et aura la valeur que tu lui aura mis dans l'attribut value
 
si tu as un groupe de choix :
exemple :  

Code :
  1. Qu'est ce que vous mangez le matin<br>
  2. <ul>
  3.   <li><input type="checkbox" id="cb1" value="Pommes" name="MatinMiam"><label for="cb1">Pommes</label></li>
  4.   <li><input type="checkbox" id="cb1" value="Orange" name="MatinMiam"><label for="cb1">Orange</label></li>
  5.   <li><input type="checkbox" id="cb1" value="Croissants" name="MatinMiam"><label for="cb1">Croissants</label></li>
  6.   <li><input type="checkbox" id="cb1" value="Pain" name="MatinMiam"><label for="cb1">Pain</label></li>
  7.   <li><input type="checkbox" id="cb1" value="Chocolat" name="MatinMiam"><label for="cb1">Chocolat</label></li>
  8. </ul>


 
Si le gars coche Pommes, Orange et Pain
ben la valeur que tu récupèreras sera $_POST[MatinMiam] et vaudra : Pommes,Orange,Pain
 
Donc une checkbox a une valeur. CQFD
 
si tu met pas de value, ta checkbox aura true ou false (ou 1 ou 0 je sais plus)
 
Je sais po, mais ca me parait chelou ta manière de traiter les names de objets.
JE ne savais pas qu'on pouvait récupérer un tableau de cette manière

Reply

Marsh Posté le 06-07-2005 à 09:49:15   

Reply

Marsh Posté le 06-07-2005 à 11:34:11    

Et bien au lieu de me parler de debutant.com
tu devrais aller sur avancé.com, c'est bien connu qu'on peut gerer des tableaux dans les formulaire grace a PHP.
 
Une checkbox a une valeur si elle est coché, cela va de soi. Mais si elle n'est pas coché, la variable n'est pas créé (je l'invente pas, elle n'apparait pas dans le $_POST)
Donc, false (ou 0 ou null), ne peut pas etre affecté. Pour info, en php, une variable existante peut etre null, 0 ou false, ca veut pas dire qu'elle n'existe pas.
unset($var); différent de $var = NULL;
 
Et pour ton exemple, tu as fait la meme chose que moi, sauf que moi, j'ai rajouté 2 niveau dans mon tableau. CQFD

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed