probleme de recuperation d'un formulaire par un tableau

ktirou
Invité n'ayant pas de compte PHPfrance

18 janv. 2008, 00:42

Bonjour a tous!

J'aimerai récuperer les données de mon formulair pour en faire un tableau!
Je m'explique:Dans le formulaire, il y a une zone a remplir qui est le nom des personne qui habite dans la maison.
Il faut separer ses nom par une virgule!
Dans mon php, j'aimerai recupere ses nom qui ont été introduit et les integrer dans un tableau pour pouvoir les trier par ordre alphabetique!

Si quelqu'un peut m'aider, ca serai genial!!!

Merci d'avance

ps:je debut vraiment au tout debut...

ViPHP
ViPHP | 4674 Messages

18 janv. 2008, 01:07

Regarde du côté de explode() et implode().
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ktirou
Invité n'ayant pas de compte PHPfrance

18 janv. 2008, 01:18

Bonjour et merci

Comme je l'ai dis, je suis débutant, et même tres debutant!
Peut tu etre plus precis?

voici mon code, on comprendra peut etre mieux ma question
<?php
 
 
 //mes variables
$timestamp = time();
$date=date('d/m/Y', $timestamp);
$heure=date('G', $timestamp) . ' : ' . date('i', $timestamp); 
$nom=$_POST['nom'];
$enfant=$_POST['enfant'];//c'est celui la que je voudrait retrouver


        if (isset($_POST['nom']) And isset($_POST['sexe']) And isset($_POST['enfant'])) //Si le visiteur a tout saisi
        {
                             
			if($_POST['sexe']=='M')
			{
			$sexe='Monsieur';
			}
			else
			{
			$sexe='Madame';
			}
			
$texte='Bonjour '.$sexe.' ';
$texte.='<strong>'.$nom.'</strong>';
$texte.=',<br/>';
$texte.='Nous sommes le '.$date.' , il est '.$heure.'.<br/>';


				echo $texte;
//et mettre ici le nom des enfants dans l'ordre alphabetique et savoir combien on été enregistré
			
						}
		else
		{
		
		}
				       
?> 
Merci d'avance

ViPHP
ViPHP | 4674 Messages

18 janv. 2008, 01:27

Et bien c'est très simple en réalité.
Si tu regardes la documentation (en tant que débutant, ça doit être un réflexe pour toi), tu vois que la fonction explode coupe une chaîne en segments. Ces segments sont retournés sous forme de tableaux.
Je t'invite évidemment à regarder le premier exemple :
<?php
// Exemple 1
$pizza  = "pièce1 pièce2 pièce3 pièce4 pièce5 pièce6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // pièce1
echo $pieces[1]; // pièce2
Tu vois ici que le délimiteur est l'espace. Dans ton cas, tu as la même chose, mais le délimiteur est une virgule. Ensuite, tu travailles sur la variable $enfant (d'après ton code).
Donc tu auras quelque chose du genre :
<?php

// ... ton code ...
$enfant = $_POST['enfant'];
$enfant = explode(',', $enfant);
ou plus simplement :
$enfant = explode(',', $_POST['enfant']);
Je t'invite également à tester. Pour afficher un tableau, tu peux utiliser la fonction print_r, de cette façon :
print_r($enfant);
Et une autre fonction de débuggage très utile :
var_dump($enfant);
Avec tout ça, tu es équipé pour résoudre ton problème :).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ktirou
Invité n'ayant pas de compte PHPfrance

18 janv. 2008, 01:41

Merci beaucoup , c ce que je voulait!
Genial!

Esthétiquement parlant, c pas tres joli!!!y a t'il moyen de le placer dans un tableau avec des bord et tout?

Merci d'avance

Invité
Invité n'ayant pas de compte PHPfrance

18 janv. 2008, 02:03

je ne sais pas comment on edit alors voila!

j'avais pensé pour faire plus"joli"le mettre entre des td et tr, mais bien sur cela ne fonctionne pas!
voila mon code
echo <tr><td>$enfant[0]</td> <td>$enfant[1]</td> <td>$enfant[2]</td> <td>$enfant[3]</td></tr>;
Mais de toute maniere, ce code n'irai pas car je ne sais pas combien de nom seront mis dans le formulaire!

en plus, se serait bien de le savoir...et de le nommmer comme ca , je peut dire combien d'enfant il y as!

Je suis un eu dans la soupe alors si quelqu'un peu m'aider, cela serai genial parce que je ne sais pas par ou commencer

ktirou
Invité n'ayant pas de compte PHPfrance

18 janv. 2008, 02:46

J'ai réussi a compte le nombre d'enfant qu'il y a et mettre une condition si il y en a un, enfants est sans S, si il y en a plusieur, il y a un s!!!

si ca interesse quelqu'un voici le code que j'ai utilisé
$enfant = $_POST['enfant'];
$enfant = explode(',', $enfant); 
$nombreenfant=count($enfant);

if($nombreenfant==1)
				{
                echo 'vous avez '.$nombreenfant.' enfant';
				}
				else
				{
echo 'vous avez '.$nombreenfant.' enfant classé par ordre alphabetique';
				
				}

Par contre pour mettre les nom "proprement" c a d différament de ceci:Array ( [0] => nom1 [1] => nom1 )

Par exemple dans un ti tableau classé par ordre alphabetique je suis prenneur!

nom1
nom2

Merci d'avance


ViPHP
ViPHP | 4674 Messages

18 janv. 2008, 03:56

Pour trier un tableau, regarde de ce côté.
Si tu as un nombre indéfini d'enfant, je te conseille d'utiliser une boucle foreach ou une boucle for. Il y a des tutoriaux partout sur le Web pour apprendre la base de PHP :). Mais si tu as un soucis, n'hésites surtout pas.

Et n'oublies pas une chose, tout est dans la documentation. On est seulement ici pour dépanner, mais tout ce que je t'ai dis jusqu'à maintenant se trouvait dans la documentation. À toi donc d'apprendre à chercher dedans :).

Sur ce, bonne nuit.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ktirou
Invité n'ayant pas de compte PHPfrance

18 janv. 2008, 09:28

bonjour a tous

Merci de tout ses précieux conseil! :D
j'ai une derniere question, j'ai réussi a f
aire apparetre le nom des enfants et leur nombre!

Mais comment faire pour que ses nom soit mis dans un tableau html avec une cellule a chaque entrée nouvelle?

Merci d'avance

voici mon code




$enfant = $_POST['enfant'];
$enfant = explode(',', $enfant); 
$nombreenfant=count($enfant);
asort($enfant);

foreach ($enfant as $v)
				 {
				echo "$v\n";
							}

d0m
Mammouth du PHP | 1141 Messages

18 janv. 2008, 09:40

tu l'as dit toi même, tu fais une cellule à chaque enfant (et non pas l'inverse...)
<?php foreach($enfant as $nom_enfant){?>
  <TD><?php echo $nom_enfant;?></TD>
<?php }?>
Un conseil au passage, essaie de mettre des nom de variables qui représente les variables.
Par exemple $enfant est un tableau contenant plusieurs enfants donc mettre un s ($enfants) permet de savoir de suite que la variable en contient plusieurs.
Tu verras dans un gros code c'est plus pratique et tu visualiseras plus vite.

ktirou
Invité n'ayant pas de compte PHPfrance

18 janv. 2008, 09:43

Voila, j'ai trouvé la solution, il suffit de l'inclure dans un tableau!tout bete quoi!

Bonne journée et merci a tous!