8721 sujets

Développement web côté serveur, CMS

Bonjour, j'ai un petit problème :

Dans un formulaire de questions/réponses où les questions peuvent avoir plusieurs réponses juste, je les récupère en mettant ceci comme name : name="reponse[]"

Lorsqu'il me récupère les valeurs, par exemple 35 et 36, il la stocke en chiffres, comme ceci :

reponse[0][0] = 3
reponse[0][1] = 5
reponse[1][0] = 3
reponse[1][1] = 6

Savez-vous pourquoi il me fait ça au lieu de me prendre directement les nombres ?
Il faudrait nous donner un bout de code php et un bout de code HTML pour essayer de mieux comprendre. Avec les informations qu'on a là, ça reste quand même assez flou.

Pour le moment, ce que je peux dire, c'est que apparament, $reponse[0]='35' et $reponse[1]='36' tels que tu les as reçus de ton formulaire. Tout ce qui est envoyé l'est toujours sous forme de chaîne et jamais de nombre, '35' et '36' sont donc des chaînes, et en php on peut accéder aux caractères individuels d'une chaîne avec la syntaxe tableau, d'où on déduit logiquement ce que tu as observé.

Il ne faut jamais oublier qu'en php, comme dans quasiment tous les langages faiblement et dynamiquement typés, les conversions implicites n'ont lieu que lorsqu'elles sont nécessaires, ce qui fait qu'on n'a pas forcément toujours conscience du véritable type d'une variable à l'instant T. Dans le cas des formulaires, php ne se pose pas de question, tout est stocké en tant que chaîne et c'est seulement quand tu essaies de les utiliser en tant que nombres (p.ex. dans un calcul) qu'ils sont effectivement convertis.
codeurDuDimanche a écrit :

Lorsqu'il me récupère les valeurs, par exemple 35 et 36, il la stocke en chiffres, comme ceci :
reponse[0][0] = 3
reponse[0][1] = 5
reponse[1][0] = 3
reponse[1][1] = 6
Savez-vous pourquoi il me fait ça au lieu de me prendre directement les nombres ?


Bonjour, si j'ai bien compris vous récupérez vos valeurs comme ceci :
3,5,3,6
hors, vous voudriez avoir ceci : 35, 36

Si ce n'est que cela, il vous suffit de fusionner votre tableau en une seule cellule :
<?php $reponse[0] = $reponse[0][0] . $reponse[0][1]; ?>


Il existe également des fonctions permettant de faire cela, voir la doc sur les tableaux :
http://www.php.net/manual/fr/ref.array.php