Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/05/2007, 15h05   #1
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 33
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 33
Points : 28
Points : 28
Par défaut Formulaire en plusieurs pages, mais pas linéaire.

Bonjour,

voilà mon problème, je crée une espèce d'agenda d'evenement et donc un formulaire qui me permettrai de le mettre à jour, j'ai donc pour chaque evenement à ajouter un formulaire avec les champs : "date", "titre", "description", "artiste", "lieu"...

Sachant que les artistes et les lieux sont enregistré dans des table à part "artistes_tbl" et "lieux_tbl", ce que je pourrais faire c'est attaquer les tables "artistes_tbl" et "lieux_tbl" afin de créer 2 listes déroulantes (<select></select>) afin de permettre à l'utilisateur de selectionner un artiste et un lieu.

Le problème c'est que ces listes déroulantes vont vite être énorme, et j'aurai preferé, à la place, que l'utilisateur puisse selectionner un artiste ou un lieu en se rendant sur une page où il trouverai une liste plus claire (avec des ancres nommées pour chaques lettres de l'alphabet etc.), il cliquerai sur l'artiste ou le lieu et reviendrait à la page de formulaire sans perdre les infos qu'il aurait déjà remplies.

J'espere que j'ai été claire .. j'ai fais un petit schema au cas où.


Voilà j'ai déjà vu ce system marché avec des popups ... mais j'aurai aimé si y avait moyen de faire en passant vraiment du formulaire à la page agenda_artiste.php ... puis revenir au formulaire sans perdre les autres infos (date, titre, etc) du même coup.

Merci beaucoup
Images attachées
Type de fichier : gif plan_agenda.gif (9,6 Ko, 3 affichages)
dhjapan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 15h18   #2
Membre du Club
 
Inscription : juin 2002
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 44
Points : 51
Points : 51
Les sessions vous seront très utiles dans le cas présent.

Dans tous les cas, le clique sur le lien pour la sélection, soit déclencher l'envoi des variables déjà saisies du formulaire. Ces variables seront alors enregistré dans la session.

En retournant au formulaire de base, vous affichez les valeurs stockées dans les champs.

J'espère que ce que je dis est clair
__________________
Merci
Have Fun !!!
Fincom
Fincom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 15h48   #3
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 33
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 33
Points : 28
Points : 28
Merci Fincom.

Si j'ai bien compris tout ca se passer sur la page agenda.php :

if ( !isset($_POST['submit']) ) {

...j'affiche le formulaire en utilisant si je les trouve :
$_GET['id'] : pour savoir si on modifie/complète en evenement déjà dans la base;
$_GET['artiste_id'] ou un $_GET['lieu_id'] : pour savoir si un artiste ou un lieu vient d'être selectionné

}

if ( isset($_POST['submit']) ) {

...j'enregistre les infos dans la base et :
if ( $_POST['submit']=="artistes" ) { ...j'affiche la liste des artistes}
if ( $_POST['submit']=="lieux" ) { ...j'affiche la liste des lieux}

}

Est-ce que ma logique est correct ?

Merci encore.
dhjapan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 15h56   #4
Membre habitué
 
Inscription : mai 2007
Messages : 131
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 131
Points : 113
Points : 113
Bonjour,

On peut aussi passer les champs du formulaire de page en page.
Quand on clique sur sélectionner, ça appelle une fonction javascript qui remplace l'action du formulaire principal par artiste.php ou lieux.php et soumet le formulaire.
Dans les pages artiste et lieux on récupère les variables $_POST et on les mets dans des champs cachés.
Quand on sélectionne un artiste ou un lieu, appel de fonction javascript qui met le choix dans un champ caché, soumet le formulaire (action="agenda_edit.php").
Là on récupère les variables $_POST (si elles sont présentes) pour initialiser les champs de saisie ...

Sinon, on peut tout faire sur une seule page en mettant le choix artiste/lieu dans une div cachée qui apparait quand on clique sur sélectionner ...

Edit : je ne suis pas sûr que ce soit une bonne idée de traiter la saisie et l'enregistrement des données sur la même page, ça va compliquer les choses. En plus, dans votre logique on enregistre dans la base de données avant d'avoir sélectionné l'artiste et le lieu ...
zvince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 16h07   #5
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 33
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 33
Points : 28
Points : 28
Ah ouai, bonne idée.

je savais pas qu'on pouvait remplacer l'artibut action d'un formulaire en javascript, ca donnerai un truc comme ca je pense :

<a
href="#"
onClick="
document.myFormName.action = "agenda_artistes.php";
submitform();
"
>Séléctionner un artiste</a>

Et sinon l'idée du Div invisble est très bonne aussi, je ferrais ca si ma méthode ne marche pas, mais j'hesite toujours avant d'en venir au javascript, j'y connais pas grand chose et j'ai peur de m'embrouiller avec des histoires de compatibilité entre les navigateurs.

Merci beaucoup pour votre aide.
dhjapan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 16h16   #6
Membre habitué
 
Inscription : mai 2007
Messages : 131
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 131
Points : 113
Points : 113
Si, on peut changer l'action. Par contre submitform(); je ne crois pas que ça marche -> document.myFormName.submit();
zvince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 16h21   #7
Membre du Club
 
Inscription : juin 2002
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 44
Points : 51
Points : 51
J'ai parlé de SESSION et non pas de base de données.t

Agenda_edit.php:
Code :
1
2
3
4
5
6
7
 
...
Date: <input type="text"  name="date" value="<?php echo $_SESSION['date']; ?>">
Titre: <input type="text"  name="titre" value="<?php echo $_SESSION['titre']; ?>">
Artiste: <input type="button"  name="artiste" value="..." onclick="select('guide_artist.php');"><?php echo $_SESSION['artiste']; ?>
Lieu: <input type="button"  value="..."  name="artiste" onclick="select('guide_lien.php');"><?php echo $_SESSION['lieu']; ?>
...
En fonction du clic, on sera rediriger vers la liste des artistes ou la liste des liens

Prenons le cas guide_artist.php:
Code :
1
2
3
4
5
6
7
8
 
...
//On enregistre les variables dans la session
$_SESSION['date'] = $_POST['date'];
$_SESSION['titre'] = $_POST[''titre];
 
//connexion BD, formulaire...
...
une fois le traitement fini, on se redirige vers guide_edit.php

Je ne propose pas une solution, et le code si dessous n'est qu'une représentation très simplifié d'une quelconque solution.

Il faudrait voir aussi la possiblité de jouer avec les CSS+ Js + PHP, ou Ajax si vous préférez.
__________________
Merci
Have Fun !!!
Fincom
Fincom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 16h50   #8
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 33
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 33
Points : 28
Points : 28
Merci Fincom.

Effectivement j'avais zappé les SESSION.

Dans ton exemple de code quand tu ecris "onclick="select('guide_artist.php');"" ... la fonction javascript "select" est bien une fonction qui se charge, comme on en a parlé plus haut, de modifier l'atribut "action" du formulaire et de soumettre le formulaire ?
dhjapan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 17h13   #9
Membre du Club
 
Inscription : juin 2002
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 44
Points : 51
Points : 51
Exactement,
L'idée est de sélectionner une cible en fonction du clic.
__________________
Merci
Have Fun !!!
Fincom
Fincom est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h34.


 
 
 
 
Partenaires

Hébergement Web