2010-08-19 9 views
0

J'ai une question concernant Drupal 6 formes.Soumettre formulaire module personnalisé

J'ai 4 tables: emplacement [LocationID, nom]; package [PackageID, nom], personne [personID, nom, LocationID, adresse, etc ...] pick-up [pickupid, personne, packageid, locationid, _pickup_day _, ...].

J'ai créé des formulaires et form_submit pour les trois tables: location, package, person (simple CRUD comme d'habitude). Maintenant, je veux faire un formulaire pour soumettre des données dans la table "pickup". La torsion est, les seules données que l'utilisateur doit entrer est le champ "pickup_day", qui peut être 1 ou 0 (lundi ou mardi). J'imagine quand je vais à l'url de pick-up, je vais voir une liste de champs de sortie:

prenom | nom de famille | emplacement | jour de ramassage | de type paquet

last1 Premier1 church1 sélectionner boîte (lundi/mardi) box de sélection (type 1/type 2/type3)

dernier2 first2 church1 sélectionner boîte (lundi/mardi) box de sélection (type 1/type 2/type3)

last3 first3 church1 boîte de sélection (lundi/mardi) boîte de sélection (Type1/type2/type3)

[bouton soumettre]

Lorsque son soumis, les données vont dans tabl "pick-up" e.

J'essaie de comprendre comment rendre les boîtes de sélection tout en fournissant des informations sur les personnes.

(Juste un aparté, serait-il possible d'avoir une recherche avant de voir le formulaire ... par exemple je recherche lieu d'être church1, alors je verrai tous les utilisateurs à cet endroit dans un formulaire comme ci-dessus)

Toute aide est très appréciée ... même pointer vers un module qui fait quelque chose de similaire est très bien ... J'ai juste besoin de quelques indices sur la façon dont les gens ont abordé cette question. Merci beaucoup!


objectif final: Donc, au fond, j'ai un certain nombre de personnes dans ma base de données. Chaque personne est assignée à un endroit où elle peut aller chercher de la nourriture. Je veux enregistrer chaque ramassage pour chaque semaine pour chaque personne. J'ai donc une table de micros pour le faire.Donc j'essaie de faire une seule forme (micros), où je peux aller et mettre à jour qui a ramassé quoi ... quel jour (lundi ou mardi). Mais donc sous cette forme, j'ai besoin de montrer toutes les personnes enregistrées pour un endroit particulier. Disons donc qu'une personne est inscrite pour une église appelée Eglise 1 ... Je veux rechercher l'emplacement de l'église 1, puis toutes les personnes qui sont enregistrées pour cet endroit montent rangée par rangée. Ensuite, je peux sélectionner le jour où chaque personne a ramassé de la nourriture et quel type de nourriture ils ont ramassé ... et cliquez sur soumettre. Ensuite, je vais lancer une requête sur ma base de données pour ajouter cette information. Le gros problème, je suppose, c'est qu'au lieu de faire un formulaire pour chaque personne (pour chaque ligne), je fais juste un formulaire et quand le formulaire est soumis, tout le monde sera ajouté au tableau "pickup" avec le jour approprié et l'article qu'ils ont ramassé.

+0

Ne peut pas parler pour les autres, mais la question n'est pas très claire pour moi. Comment les lignes affichées à l'URL de collecte sont-elles générées? Sont-ils des champs de formulaire ou juste du texte, etc ...? – mac

+0

Eh bien, tout ce que j'ai vraiment besoin de faire est de soumettre des données à une table différente (ramassages), et obtenir des données de l'autre table à afficher dans le formulaire. Donc habituellement vous auriez un formulaire, avec aucune donnée déjà présente juste des étiquettes et des champs de saisie. Dans mon cas, cependant, j'ai besoin de montrer certaines données (à partir de l'emplacement, la personne, les tables de ramassage), puis lorsque vous cliquez sur Soumettre, j'ai besoin d'ajouter des informations à ma table "Pickups". Merci- – berto77

Répondre

0

Je vous suggère de regarder le support AHAH intégré à l'API de formulaire. Vous pouvez trouver plus d'informations ici: http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html/6#ahah. En supposant que je comprends correctement votre question, il s'agit d'une situation de forme ajax/ahah assez typique; un élément de votre formulaire déclenche la création de nouveaux éléments de formulaire.

Par exemple, vous pouvez créer une zone de sélection d'emplacements. Une fois qu'un emplacement est sélectionné (#ahah ['event'] => 'change'), vous pouvez faire un rappel à un emplacement de menu (#ahah ['path'] => chemin/to/callback) qui peut générer le nouveau former des éléments à ajouter, dans ce cas, sélectionnez des cases pour les personnes et/ou les paquets associés à cet emplacement.

Vous pouvez également faire quelque chose de similaire en utilisant la recherche au lieu d'un élément de sélection.

+0

Merci, mais je ne pense pas vraiment que j'aurai besoin de la fonctionnalité ajax ici ... tout ce que je dois faire est de soumettre des données et de rediriger. Mon problème est que j'ai besoin d'afficher visuellement des données de différentes tables avant de soumettre des données à une nouvelle table. – berto77