Problème créer un tableau avec des valeurs récupérer par post puis rajouter la m

cds0671 Messages postés 18 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 17 novembre 2009 - 16 nov. 2009 à 09:34
cds0671 Messages postés 18 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 17 novembre 2009 - 17 nov. 2009 à 15:52
Bonjour voici mon problème!!

J'ai un formulaire à accès libre sans session, ou on rentre NOM, PRENOM, FONCTION, LIEU.
Jusque là pas de souci.
Là ou je bloque, c'est que je voudrais envoyer sur la base les données que lorsque l'utilisateur a terminé de saisir l'ensemble des personnes à inscrire.

Principe, il complète les champs -> clique sur "ajouter" -> les données POST sont récupérer sur la même page et stockées (1ère solution)dans un tableau PERSONNE(0), les données ajouter sont réaffichées et en dessous se rajoute le même formulaire que précédemment pour pouvoir rentre une autre personne qui une fois cliquer sur "ajouter" est stockée dans un autre tableau PERSONNE(1) etc...
Ou alors première personne stockée (2eme solution) dans un tableau PERSONNE, puis 2eme pousser dans le même tableau sans supprimer la première, pousser 3eme etc...

Lorsque l'utilisateur a terminé ses saisies, il clique sur le bouton submit et à ce moment là je désire balancer dans ma base l'ensemble des tableaux PERSONNE(n) ou alors le tableau PERSONNE (si 2eme solution retenue).

PERSONNE0 :
NOM
PRENOM
FONCTION
LIEU
PERSONNE1 :
NOM
PRENOM
FONCTION
LIEU
etc...

MERCI POUR VOTRE AIDE C'EST SUPER URGENT j'AI PASSE LE WEEK DESSUS ET TOUJOURS PAS TROUVER PAS LOIN MAIS j'ai tenté utiliser array_push mais sa mécrase celui d'avant !!!!

csd0671

14 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
16 nov. 2009 à 10:01
Salut,

Où est le problème au juste ? Parce que là, sans code ...
Tu utilises les sessions pour stocker ton / tes tableaux ? Autre chose ?


Cordialement,


Kohntark -
0
cds0671 Messages postés 18 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 17 novembre 2009
16 nov. 2009 à 11:17
Voici le bout de code du formulaire

Renseignez tous les champs du formulaire, puis cliquez sur
le bouton Ajouter pour ajouter la personne.
Une fois l'ensemble des personnels inscrit, cliquez sur "Envoyer ma demande" pour valider votre demande.


<!-- Formulaire permettant la saisie de la personne concerné---
----- Une fois complété, l'utilisateur clique sur le bouton "VALIDER" la personne ---
----- est alors ajoutée à un tableau permettant une fois toutes les personnes saisies ---
----- leurs enregistrement dans la table "INSCRITS" -->

<form action="<?PHP echo $PHP_SELF?>" method="POST" name="form" id="form">
fieldError("NOM","fieldreq") ?>'>Nom*,
fieldError("PRENOM","fieldreq") ?>'>Prénom*,
fieldError("FONCTION","fieldreq") ?>'>Fonction ou discipline*,
fieldError("ETABLISSEMENT","fieldreq") ?>'>Etablissement*,

----

\">
\">
\">

" id="NOM">,
">,
">,
">,



Maintenant ce que je n'arrive pas à réaliser, c'est récupérer les 4 valeurs POST(NOM, PRENOM, FONCTION, LIEU) et remplir un tableau PERSONNE par exemple avec ces valeurs, puis lorsque l'utilisateur rempli à nouveau cette ligne je récupère les nouvelles valeurs et les pousse dans le tableau ainsi de suite et quand il a fini, alors à ce moment là je balance tout sur ma base.

Le principe c'est comme faire un panier mais sans variable de session étant donné que ce formulaire est libre d'accès!

Donc récupérer les POST etc... ça pas de souci je sais faire, c'est les pousser dans un tableau que je complète au fur et à mesure.
Je désire réafficher les lignes du tableau déjà reçu, réaffiché en dessous mon formulaire et ainsi de suite jusqu'à ce qu'il ai terminé
à ce moment là un autre bouton apparait "envoyer ma demande" et là j'envoi sur la base mon tableau.
J'espère avoir été plus claire!!

MERci pour votre aide


csd0671
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
16 nov. 2009 à 13:00
Le principe c'est comme faire un panier mais sans variable de session étant donné que ce formulaire est libre d'accès!


En quoi les variables de session t'empêcheraient elles de rendre ce formulaire accessible à tout le monde ??
Ca n'a strictement rien à voir !!

Mieux que tout propos qui pourrait être tenu ici je t'invite à lire la doc.

En tout état de cause les sessions répondent parfaitement à ton pb, et le array_push semble lui aussi adapté.

Cordialement,


Kohntark -
0
cds0671 Messages postés 18 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 17 novembre 2009
16 nov. 2009 à 14:08
Mon problème est le suivant si tu peux m'aider se serait vraiment super.

Je reçois du formulaire 4 variables
$NOM, $PRENOM, $FONCTION, $ETABLISSEMENT

Je veux remplir un tableau avec ces variables, mon tableau ressemberait à ça

NOM PRENOM FONCTION ETABLISSEMENT
$nom1 $prenom1 $fonction1 $etablissement1
$nom2 $prenom2 $fonction2 $etablissement2 etc...

Sachant que les variables sont reçus à chaque fois que l'utilisateur clique sur ajouter

Puis une fois fini je voudrais envoyer ce tableau sur ma base.!!!

J'y arrive pas comprend pas!!!

MErci





csd0671
0

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

Posez votre question
Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 11
16 nov. 2009 à 15:58
Bonjour cds0671,

As tu lu ce que t'as écris kohntark ?
Question rhétorique...

array_push est la piste...

1. Tu te fais un tableau d'utilisateurs dans une variable de session ;
2. Quand tu clique sur ajouter, tu assemble tes informations sur l'utilisateur dans un tableau utilisateur ensuite tu injecte avec array_push ce tableau dans ton tableau d'utilisateurs ;
3. Quand l'utilisateur clique sur Fini, ton script à juste à récupérer la session contenant tous les tableaux d'utilisateur et à faire un foreachdessus. Dans chaque passage de ta boucle tu insert l'utilisateur en base de donnée ;
4. Tu vide ta variable de session.

_________________________________
Min iPomme
0
cds0671 Messages postés 18 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 17 novembre 2009
16 nov. 2009 à 16:14
Merci Tonio_35

Pourrais tu si tu en as le temps bien entendu, me faire un exemple car vois tu lorsque je le fais mon array_push mécrase les valeurs précédentes je n'ai donc toujours qu'une ligne dansmon tableau ? comprend pas

ça pourrais ressembler à qqc comme ça ?

$_SESSIONS['personne']=array();

if($insc==1){
$inscrit=array();
$inscrit['NOM']=$_POST['NOM'];
$inscrit['PRENOM']=$_POST['PRENOM'];
$inscrit['FONCTION']=$_POST['FONCTION'];
$inscrit['LIEU']=$_POST['LIEU'];

array_push($_SESSIONS['personne'],$inscrit);

}


Ce serait un truc comme ça ???
Merci pour ton aide

csd0671
0
Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 11
16 nov. 2009 à 16:27
Ca ressemble à ca oui...

Sauf qu'il faut pas que tu fasse :
<?php
$_SESSIONS['personne']=array();
?>
à chaque fois sinon tu efface ton tableau à chaque fois...

<?php
// Si $_SESSIONS['personne'] n'est pas un tableau
if(!is_array($_SESSIONS['personne']))
{
    $_SESSIONS['personne']=array();
}
?>

Pense bien à effacer $_SESSIONS['personne'] une fois que tu auras injecté en base le contenu...


_________________________________
Min iPomme
0
cds0671 Messages postés 18 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 17 novembre 2009
16 nov. 2009 à 16:49
Je fais ça mais ça marche pas pourquoi?


session_start(); // A ne pas oublier sur toutes les pages


if (!isset($_SESSION['personne'])){
$_SESSION['personne']=array();


}

if($insc==1){
$inscrit=array();
$inscrit['NOM']=$_GET['NOM'];
$inscrit['PRENOM']=$_GET['PRENOM'];
$inscrit['FONCTION']=$_GET['FONCTION'];
$inscrit['LIEU']=$_GET['LIEU'];

array_push($_SESSIONS['personne'],$inscrit);

}
print_r ($_SESSION);

Quand je print j'ai rien ???

MErci

csd0671
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
16 nov. 2009 à 20:08
Afin que ce soit plus clair pour tout le monde, pense à indenter ton code et à utiliser la balise code () pour la coloration syntaxique.
Ca facilite grandement la lecture, même pour de tout petits codes. Tu aurais peut être vu que tu as écris $_SESSIONS

Par ailleurs pense à activer les erreurs pour voir immédiatement ce genre de pb (error_reporting())

Et au final, c'est du GET ou du POST ?

Cordialement,


Kohntark -
0
cds0671 Messages postés 18 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 17 novembre 2009
16 nov. 2009 à 21:26
Voici une partie de mon code, pour ce qui concerne ce S dans mon script il n'y était pas. En effet, je tapais juste quelques lignes car mon fichier était vraiment bordélic vu ts les tests que je fesais loll
Ici c'est du GET juste pour les test.
(error_reporting ? sous Drem ça se trouve ou ?



Voici un bout de mon code nettoyé un peu mai qui ne marche toujours pas ???







test



.fielderror { color: red; }
.fieldreq { color: black;}










Liste des personnes concernés"



Renseignez tous les champs du formulaire, puis cliquez sur
le bouton Inscrire pour valider l'inscription.













0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
16 nov. 2009 à 21:50
error_reporting ? sous Drem ça se trouve ou ?

Je ne sais pas, je ne connais pas Dreamweaver mais il suffit de l'ajouter directement dans le code.
T'es tu renseigné sur cette fonction ?
Il est indispensable que tu affiches ces erreurs.

Tu as des variables non définies ($PROJET), $PHP_SELF n'existe probablement pas, $insc également (mais $_POST['insc'] sans doute). L'affichage des erreurs te permettrait de les voir immédiatement.

Une fois cela corrigé ton code devrait fonctionner


Cordialement,


Kohntark -
0
cds0671 Messages postés 18 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 17 novembre 2009
16 nov. 2009 à 22:24
Non je ne connaissais pas cette fonction mais vite allez la voir loll

effectivement avais pas fait attention insc j'avais supprimé la ligne ou je le définissé
par contre la il n'y avai qu'un bout du code $projet il est défini dans une autre page ou celle ci va venir s'insérer c'est juste une page de test vite faite hihi

Crois tu qu'il serait possible de faire ça sans variable de session ??

car je cherchais a le faire sans juste pour m'entrainer sur les tableaux de tableaux et les boucles pour les balayer et là j'y arrive pas j'en suis pas loin mais lorsque je push mon deuxième GET j'arrive pas ... du moins tout ça je l'avais mis dans mon premier post.

Si t'avais une explication comment faire la solution sans variable de session se serait super car me permettrait de mieux assimiler le fonctionnement d'un tableau de tableau et comment le remplir et le balayer.

MErci encore pr ton aide


csd0671
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
17 nov. 2009 à 08:50
Crois tu qu'il serait possible de faire ça sans variable de session ??

Je ne crois pas, j'en suis sur, bien qu'il soit toujours possible de bricoler autre chose, via un cookie, un fichier texte, une table temporaire, etc ... mais là ça devient du n'importe quoi.

Je ne suis pas sur que ce soit superflu de rappeler que toutes les variables d'un script sont détruites lorsque celui ci se termine.
Lorsque tu dis que array_push écrase la dernière entrée c'est inexacte. La véritable raison est celle évoquée ci dessus.

Non je ne connaissais pas cette fonction mais vite allez la voir loll

Juste au passage et sans méchanceté :
Lorsque l'on te propose un truc la moindre des choses et d'en tenir compte. Une minuscule recherche t'aurait permis de déboguer en un clin d'oeil ton script.
error_reporting()


Cordialement,

Kohntark -
0
cds0671 Messages postés 18 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 17 novembre 2009
17 nov. 2009 à 15:52
J'ai été voir pour error_reporting().
Là il est vrai que j'ai vite recopier une partie de mon script et du coup j'ai introduit quelques bêtises mais qui n'étaient pas présentes dans le script que je test.

En tout cas ça fonctionne la boulette venai juste du fait que j'avais pas def la variable insc, quelle tête en l'air hihi.

En tt cas merci d'avoir pris le temps de me répondre c cool merci.

Au plaisir

Cordialement,

csd0671
0
Rejoignez-nous