|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : février 2005 Messages : 33 ![]() |
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 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 |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : juin 2002 Messages : 44 ![]() |
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 |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : février 2005 Messages : 33 ![]() |
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. |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Inscription : mai 2007 Messages : 131 ![]() |
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 ... |
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : février 2005 Messages : 33 ![]() |
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. |
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() Inscription : mai 2007 Messages : 131 ![]() |
Si, on peut changer l'action. Par contre submitform(); je ne crois pas que ça marche -> document.myFormName.submit();
|
|
|
00
|
|
|
#7 | ||||
|
Membre du Club
![]() Inscription : juin 2002 Messages : 44 ![]() |
J'ai parlé de SESSION et non pas de base de données.t
Agenda_edit.php: Code :
Prenons le cas guide_artist.php: Code :
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 |
||||
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : février 2005 Messages : 33 ![]() |
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 ? |
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : juin 2002 Messages : 44 ![]() |
Exactement,
L'idée est de sélectionner une cible en fonction du clic.
__________________
Merci Have Fun !!! Fincom |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com