Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Formulaire PHP : transfert de tableau

miklb, le mercredi 31 août 2005 à 12:03:52
Bonjour,
J’ai un formulaire surlequel l’utilisateur saisie ses données et en arrière plan le script créé (indépandamment de ces saisies) un tableau simple de valeurs (type chaine de caractère).
Je souhaite passer toutes ces infos par le formulaire (méthode POST). Le tableau est passé par un <INPUT TYPE="hidden" NAME="tableau" VALUE="$tableau">
mais sur le script appelé, je n’arrive pas à récupérer mon tableau.

Je fais : $tableau=$_POST[‘tableau’] ;


Aurais je loupé qql chose ?? ;-))

Merci.
Répondre à miklb  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
StreM, le mercredi 31 août 2005 à 15:16:49
Sans aucun doute !
$tableau est, bizarrement, un tableau !
Donc différent d'une chaine de caractères. Tu dois récupérer tes valeurs par $tableau[0], $tableau[1], etc...
Si tu sais pas ça, je te conseille d'aller sur http://www.phpdebutant.org. C'est le B.A-BA.

Moins le blanc est intelligent, plus le noir lui parait bête
Répondre à StreM

2


  • 2
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
miklb, le jeudi 1 septembre 2005 à 16:07:28
Bonjour,

Je pense que le temps perdu à prendre des gants pour la réponse a été plus que zappé ! C’est mon avis !
Cela dit, évidemment, je ne suis pas expert, mais j’ai qql connaissances.
Bref, j’ai repotassé tout ça hier soir et j’ai réussi. En fait mon tableau passe du script 1 au 2 puis doit revenir au 1.
Mais je maintiens (sauf erreur) que je ne peux transférer simplement tout un tableau par une seule ligne <INPUT TYPE=HIDDEN …>
Il faudrait faire une boucle <INPUT TYPE=HIDDEN name =tableau value=$tableau[‘$indice’]…> ?
Bon en tout cas ma solution a été de mettre mon tableau en variable de session et ça a été nickel.

Merci quand même !
Répondre à miklb

3


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
rdutein, le lundi 23 janvier 2006 à 07:56:50
Mais lol Strem .. comment poster innutilement et en plus en dévalorisant miklb.
Bref ...

Je vois que tout ca a été posté y a pas mal de temps mais pour tout ceux qui se pose la question:
Comment passer un tableau (Array) via un formulaire et comment le récupérer?
Voici l'astuce la plus simple a mon gout.

Utilisez les fonctions implode et explode
cf. code ci dessous:

# hidden pour envoyer le tableau
<input  name='tableau' type='hidden' value='",implode("|",$tableau),"'>

-----------------------------------------------------------------

# reconstitution du tableau dans tableau_1
$tableau_1=explode("|",$tableau);


Voila, on décompose notre tableau en une chaine de caractères avec la fonction implode (exp: tableau[truc][machin][chose] en tableau="truc|machin|chose"

Et a la reception de cette chaine tableau on la recompose en Array avec explode.

Jsuis peu etre pas trés clair mais il est 8h du mat et j'ai pas dormis.
++
Répondre à rdutein

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
BeliG, le vendredi 5 mai 2006 à 12:04:44
Merci rdutein : )
Répondre à BeliG

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
tontonbruno, le vendredi 1 septembre 2006 à 14:42:42
... euuuhhh sorry ça ne marche pas, car on ne stocke pas en Hidden les valeurs modifiées du formulaire ... mais les précédentes valeurs.
C'est donc valable pour des données NON modifiables.
Par contre : solution ( trouvée sur le net ) :
On récupère les data comme suit :
for ($i=0;$i<$nbre_poste;$i++) { $t_par [$i] = $_GET['montablo'][$i]; }

Formulaire : on boucle sur la ligne suivante :
"<input type='text' name='montablo[]' value='" . $montablo [$i] . "'>";

Voilà. `-)
Répondre à tontonbruno

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jon1316, le vendredi 30 mars 2007 à 01:15:47
je trouve vachement compliqué vos méthode ^^

moi j'utilise la fonction "serialize" ce qui met le array sous une autre forme :


-------------
<input type="hidden" name="aaa"
value="<?=serialize($tableau);?>" />
-------------
print_r(unserialize($_POST['aaa']));
-------------

puis avec unserialize je retransforme en array

et voilà :D
Répondre à jon1316

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
cheperd, le mardi 3 avril 2007 à 12:16:15
salut a tous
juste une petite precision :
il vous faudra mettre value='<?=serialize($tableau);?>' /> cad utiliser des simples quotes et non des doubles sinon les valeurs de votre tableau ne seront pas toutes lues à cause des doubles-quotes que generent le serialize.
de meme quand vous allez vouloir reconstruire le tableau noubliez pas de mettre unserialize(stripslashes($_POST['aaa'])) afin denlever les antislash rajoutes par html.
voila jespere que ca pourra vous servir.
+++
Répondre à cheperd

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
vinz, le vendredi 27 avril 2007 à 18:07:19
Salut à tous,
Petite question sur la fonction serialize. Lorsque je fais passer un tableau d'une page à une autre les doubles quotes se trouvant dans le tableau disparaissent.
Sur ma première page j'utilise cette commande:
exec("sed -e 's/\$ii=array(0=>\"x\")/\$tab='\"'$serial'\"'/g' /var/www/testlocal.php > $path/local$i.php");

et sur ma 2ème page je retrouve ceci:
$tab='a:3:{i:0;s:6:centos;i:1;s:2:xp;i:2;s:6:debian;}';

alors que je devrai retrouver ceci comme sur ma première page:
$tab='a:3:{i:0;s:6:"centos";i:1;s:2:"xp";i:2;s:6:"debian";}';

Les doubles quotes entourant le nom des os disparaissent, est -ce que quelqu'un pourrait m'aider merci :)
Répondre à vinz

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
michel C, le lundi 22 octobre 2007 à 19:14:06
Bonjour,

Je confirme la syntaxe aussi subtile que puissante pour manipuler les formulaires dynamiques :

Exemple :

print ("<form enctype='application/x-www-form-urlencoded' action='panier.php' method='post'>\n");
print ("<table style='width:90%; margin:0; padding: 0; font-family:\"Microsoft Sans Serif\"; font-size:12px; text-align:left'>\n");

Imaginez une Boucle sur une requête SQL concernant des références articles et des quantités modifiables :

print ("<tr>\n");
print ("<td align='left''>$bart->ref</td>\n");
print ("<td align='right'><input type='text' value='$bart->qte' name='Qte[]' size='1' maxlenght='3'></td>\n");
print ("</tr>\n");

print ("</form></table>\n");

En récupération du Post :


if (isset($_POST['Qte']))
foreach ($_POST['Qte'] as $cle => $value)
print ("Qte no $cle = $value<br>\n");

C'est aussi simple que ça !!

Le PHP est le langage le plus puissant que je connaisse pour la manipulation des tableaux,
profitons de tout le potentiel offert par ce langage !

Merci
Répondre à michel C

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
toto, le mardi 19 février 2008 à 16:42:11
TOTO il est content de cette super réponse
Répondre à toto

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 letudiante, le jeudi 30 octobre 2008 à 10:48:42
Encore mieux,
J'ai galeré un moment car je voulais transmettre un tableau du type :
$listeTableau[count($listeTableau)]=array('caisse' => $listeCaisses[$j]["nomCaisseRegionale"],
'contrat' => $listeContrats[$i]->getLibelleContrat(),
'fond' => $fondCellule,
'texte' => $texte);

l'astuce est de passer par les variables de session!

Pour le passer
session_start(); //déclaré en début de fichier
$_SESSION['listeTableau'] =$listeTableau;
<form action="pageRecevante.php" method="post" target="_blank" />
<input type="submit" value="Exporter tableau">
</form>

Pour le recevoir
session_start(); //déclaré en début de fichier
if (isset($_SESSION['listeTableau']))
$listeTableau= $_SESSION['listeTableau'];
//utilisation normale ensuite
for ($indice = 0 ; $indice < count($listeTableau) ; $indice++)
{
echo $listeTableau[$indice]["contrat"];
}

Facile ;)
Répondre à letudiante

Résultats pour Formulaire PHP : transfert de tableau

Generateur de formulaire php (Résolu) bonjour, je cherche un generateur de formulaire php sur le net. Est ce que vous pouvez m'en indiquer un ? Seb. MErci www.commentcamarche.net/forum/affich-1667401-generateur-de-formulaire-php
Intégrer un captcha dans un formulaire php (Résolu) Bonjour, mon formulaire est terminé, bien comme je le voulais .... ( ajouter une info dans formulaire php#0 ) et maintenant j'aimerais intégrer une vérification avec un " captcha " mais je ne sais pas quelle commande insérer, ni où la mettre !!!... www.commentcamarche.net/forum/affich-3660372-integrer-un-captcha-dans-un-formulaire-php
Upload d'images par formulaire php, en table (Résolu) Bonjour à tous, Petit problème tout bête d'utilisation des tables pour enregistrer en même temps une vingtaine d'images par formulaire php. Ca marche parfaitement pour une image avec : echo ' www.commentcamarche.net/forum/affich-4865533-upload-d-images-par-formulaire-php-en-table

Résultats pour Formulaire PHP : transfert de tableau

Sécuriser son code PHPIndépendamment de la sécurisation du système d'exploitation du serveur, du serveur HTTP lui-même et des options de configuration de PHP (php.ini), il est important de veiller à sécuriser les données provenant des utilisateurs (via les formulaires ou... www.commentcamarche.net/faq/sujet-10462-securiser-son-code-php

Résultats pour Formulaire PHP : transfert de tableau

Formulaire PHP Dynamique (Résolu)Bonjour à tous, Je rencontre un soucis pour construire un formulaire PHP dynamique. Il s'agit de deux listes déroulantes qui se suivent. La deuxième liste est construire par un select qui devrait dépende du choix fait dans la première liste.... www.commentcamarche.net/forum/affich-4111611-formulaire-php-dynamique
Formulaire php choix destinataires (Résolu)Bonjour, Pour aller plus vite et sans obliger les personnes a renter les adresses mails, je souhaiterais faire un formulaire php. Ce que je souhaite faire: Des cases a cocher = destinataire(s) un champs objet = objet une zone de texte = message Ce que... www.commentcamarche.net/forum/affich-6005054-formulaire-php-choix-destinataires
Formulaire PHP (Résolu)SALUT à tous J'ai fait un formulaire en php : http://ensceneassociation.fr/formulaire.php Voici la partie "envoi" du code : $objet='.::'.$motif.' de '.$nom.' - Formulaire du site::.';... www.commentcamarche.net/forum/affich-3504092-formulaire-php