|
|
|
|
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
|
|
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. ++
|
... 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à. `-) |
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
|
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 :) |
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
|
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ésultats pour Formulaire PHP : transfert de tableau
Résultats pour Formulaire PHP : transfert de tableau
Résultats pour Formulaire PHP : transfert de tableau