Envoi de tableaux select post php

Résolu/Fermé
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 - 25 juin 2009 à 14:39
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 - 25 juin 2009 à 21:16
Bonjour,

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:

15 réponses

atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
25 juin 2009 à 15:14
slt. je vois tjrs pas l'interet de note[dest[]]...

pourquoi pas y aller avec un tableau à 2 dimensions ?? note[][]
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
25 juin 2009 à 15:16
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^^
0
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
25 juin 2009 à 15:23
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...
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
25 juin 2009 à 15:26
hum je ne suis pas sûr de bien te suivre^^

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);
				}
0

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

Posez votre question
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
25 juin 2009 à 15:46
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.
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
25 juin 2009 à 16:00
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[]

:)
0
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
25 juin 2009 à 16:04
waooow .... je suis mort !!!

quelqu'un d'autre pourrait il pas intervenir !!!
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
25 juin 2009 à 16:10
ptdr euh.... désespéré par mon incompréhension? :$
0
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
25 juin 2009 à 16:16
mais si...
je comprend vite... mais il faut expliquer très longtemps....
mais là.. je suis mort...
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
25 juin 2009 à 16:17
ptdr:D la chaleur t'a crevé? : o)

courage :p

Bon, croisons les doigts pour que quelqu'un d'autre viende nous aider alors^^
0
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
25 juin 2009 à 16:21
:D ouais... je croise très fort les doigts..
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
25 juin 2009 à 20:33
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:
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!!
0
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
25 juin 2009 à 20:47
mmdddrr... ok.. de rien..
je suis ravi d'avoir LUUTTTTEEERRRR...
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
25 juin 2009 à 20:59
ptdr :D ça m'aurait embêté que tu ais été déçu :p bonne soirée à toi et à bientôt ;) merci encore:)
0
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
25 juin 2009 à 21:16
:)
0