Envoi de tableaux select post php
Résolu
Smoking bird
Messages postés
870
Date d'inscription
Statut
Membre
Dernière intervention
-
atspinto Messages postés 338 Date d'inscription Statut Membre Dernière intervention -
atspinto Messages postés 338 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un problème avec le code suivant:
Comme vous pouvez le voir l'ensemble des données est envoyé par post à travers un tableau nommé 'note', que j'aimerais bien conserver. J'ai besoin de pouvoir envoyer un message à plusieurs personnes, c'est pourquoi j'utilise un select multiple, dont le nom est 'dest[]', un autre tableau donc.
Il se trouve que lors de la récupération des données, en affichant simplement post, je n'obtiens que le premier destinataire, et pas la liste complète, ce qui est très gênant. Existe-t-il une solution à ce problème, ou ce code est il tout bonnement invalide?
En vous remerciant,
Smoke
J'ai un problème avec le code suivant:
<form class='W450 note' method='post' action='index.php?root=notebox&branch=default'> <h3 class='titre'>Note</h3><br /> <fieldset class='inheritWidth'><legend>To(s)</legend> <select multiple size=5 name='note[dest[]]'> <option value='dd00853731'>Waffle</option> <option value='50eed8b7ac'>Tlazolteotl</option> <option value='6e1923998b'>Ginie</option> <option value='d398d7485a'>Steph</option> <option value='7888f3c3fe'>Elyria</option> <option value='668999ba00'>Merrily</option> <option value='7ed7e213cd'>Alexislevrai</option> <option value=''>--deceased--</option> </select> </fieldset> <fieldset class='inheritWidth' id='jones'><legend>Status</legend> <label class='stat'><input type='radio' checked name='note[status]' value='0'/> Draft</label> <label class='stat'><input type='radio' name='note[status]' value='1'/> Send</label> </fieldset> <fieldset class='inheritWidth block'><legend>note</legend> <input type='text' maxlength=256 name='note[titre]'/> <textarea class='inheritWidth H200' maxlength=1000 name='note[texte]'></textarea> </fieldset> <fieldset class='inheritWidth' style='float:left; display:block; clear:both;' class='cleared'><legend>--SEND--</legend> <input type='image' name='Envoyer' title='send form' src='send.png' value='send'/> </fieldset></form>
Comme vous pouvez le voir l'ensemble des données est envoyé par post à travers un tableau nommé 'note', que j'aimerais bien conserver. J'ai besoin de pouvoir envoyer un message à plusieurs personnes, c'est pourquoi j'utilise un select multiple, dont le nom est 'dest[]', un autre tableau donc.
Il se trouve que lors de la récupération des données, en affichant simplement post, je n'obtiens que le premier destinataire, et pas la liste complète, ce qui est très gênant. Existe-t-il une solution à ce problème, ou ce code est il tout bonnement invalide?
En vous remerciant,
Smoke
A voir également:
- Envoi de tableaux select post php
- Brouillon post instagram - Guide
- Votre envoi est en cours de transport vers son site de livraison - Forum Consommation & Internet
- Tableaux croisés dynamiques - Guide
- Votre envoi est réacheminé vers son site de distribution - Forum Consommation & Internet
- Programmer envoi sms - Guide
15 réponses
slt. je vois tjrs pas l'interet de note[dest[]]...
pourquoi pas y aller avec un tableau à 2 dimensions ?? note[][]
pourquoi pas y aller avec un tableau à 2 dimensions ?? note[][]
hum parce que j'execute un traitement automatisé de toutes les valeurs reçues par POST, par sécurité :), et que ce traitement a besoin des noms des champs^^
je vois ça note[dest[]] plus haut...
et ceci note[texte] beaucoup plus bàs ...
ce qui veut dire que les valeurs de dest[], tu les connais avant d'arriver sur ta page !!!
je sais qu'en faisant simplement un for sur note[] au lieu de note[dest[]], tu peux parcourir tous les elements...
quoique, tu pourrais aussi faire un for sur le dest[], recuperer ses valeurs afin de trouver celle de note[dest[]]...
à toi de voir...
et ceci note[texte] beaucoup plus bàs ...
ce qui veut dire que les valeurs de dest[], tu les connais avant d'arriver sur ta page !!!
je sais qu'en faisant simplement un for sur note[] au lieu de note[dest[]], tu peux parcourir tous les elements...
quoique, tu pourrais aussi faire un for sur le dest[], recuperer ses valeurs afin de trouver celle de note[dest[]]...
à toi de voir...
hum je ne suis pas sûr de bien te suivre^^
voici un extrait choisi de mon code récupérateur de données:
voici un extrait choisi de mon code récupérateur de données:
if( $note=$_POST['note'] and count($note)>=4 ){ foreach($note as $id=>$obj){ ${$id}=string::inString($obj); if( $id=='titre' || $id=='texte' and strlen($obj)<3 ){ ${$id}='::no data::'; } } if( strlen($dest)==10 ){ $owners="$dest//"; }elseif( is_array($dest) ){ $owners=implode('//',$dest); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'imagine un peu le nombre de tests que tu dois faire juste pour valider ton formulaire....
dejà que je suis un peu perdu dans ton test....
et.. y a un ptit truc là : if( $note=$_POST['note'] and count($note)>=4 ){
c'est pas plutot un == à la place ??
et pourquoi t'utilises des tableaux de mm nom ?? des noms differents reduiraient le nombre tests..
mais bon... je disais ceci... avec un foreach tu peux recuperer les valeurs de DEST[] (je crois que c'est ce que tu cherches), et les utiliser pour determiner les valeurs de note[]....
si tu vois ce que je veux dire.
dejà que je suis un peu perdu dans ton test....
et.. y a un ptit truc là : if( $note=$_POST['note'] and count($note)>=4 ){
c'est pas plutot un == à la place ??
et pourquoi t'utilises des tableaux de mm nom ?? des noms differents reduiraient le nombre tests..
mais bon... je disais ceci... avec un foreach tu peux recuperer les valeurs de DEST[] (je crois que c'est ce que tu cherches), et les utiliser pour determiner les valeurs de note[]....
si tu vois ce que je veux dire.
justement, j'fais pas beaucoup de tests ;) je vérifie le nombre minimum de données à envoyer pour que ça soit traité, et je les passe toutes à la moulinette pour éviter les intrusions et les actions interdites (genre balises html non désirées et autres^^), grâce à mon foreach et à la méthode inString()^^
$note=$_POST['note']
Ce n'est pas une erreur, c'est une affectation de la variable dans le test conditionnel, perso ça me fait gagner en lignes et en lisibilité :)
J'utilise le tableau note pour récupérer directement les valeurs adéquates^^ une autre façon de trier les données transmises en POST et de m'assurer qu'il n'y a aucune bizarrerie qui risquerait de survenir
"mais bon... je disais ceci... avec un foreach tu peux recuperer les valeurs de DEST[] (je crois que c'est ce que tu cherches), et les utiliser pour determiner les valeurs de note[]....
si tu vois ce que je veux dire."
Justement non :D
Je peux utiliser le tableau supplémentaire dest[] en indépendant, ce qui me force à récupérer différemment cette valeur comparé au reste, ça m'écarte de ma ligne directrice de récupération et traitement des données, c'est pour ça que j'essais de créer un autre tableau de variables dans le tableau note[]
:)
$note=$_POST['note']
Ce n'est pas une erreur, c'est une affectation de la variable dans le test conditionnel, perso ça me fait gagner en lignes et en lisibilité :)
J'utilise le tableau note pour récupérer directement les valeurs adéquates^^ une autre façon de trier les données transmises en POST et de m'assurer qu'il n'y a aucune bizarrerie qui risquerait de survenir
"mais bon... je disais ceci... avec un foreach tu peux recuperer les valeurs de DEST[] (je crois que c'est ce que tu cherches), et les utiliser pour determiner les valeurs de note[]....
si tu vois ce que je veux dire."
Justement non :D
Je peux utiliser le tableau supplémentaire dest[] en indépendant, ce qui me force à récupérer différemment cette valeur comparé au reste, ça m'écarte de ma ligne directrice de récupération et traitement des données, c'est pour ça que j'essais de créer un autre tableau de variables dans le tableau note[]
:)
ptdr:D la chaleur t'a crevé? : o)
courage :p
Bon, croisons les doigts pour que quelqu'un d'autre viende nous aider alors^^
courage :p
Bon, croisons les doigts pour que quelqu'un d'autre viende nous aider alors^^
mon incommensurable génie a trouvé la solution, après avoir puisé l'inspiration dans moultes épisodes de la flanders' company:
il suffisait de signaler le tableau de destinataires ainsi:
et ça, ça marche très bien^^
Merci atspinto d'avoir lutté contre la chaleur et le code avec moi :D ton sacrifice n'aura pas été vain!!
il suffisait de signaler le tableau de destinataires ainsi:
note[dest][]
et ça, ça marche très bien^^
Merci atspinto d'avoir lutté contre la chaleur et le code avec moi :D ton sacrifice n'aura pas été vain!!