2010-01-25 22 views
0

Je dois remplir la première zone avec les éléments d'une table db. Les utilisateurs choisissaient dans la première case et faisaient glisser la valeur (éléments) vers la seconde pour la sélection, ou sélectionnaient les éléments, puis cliquaient sur un bouton pour les déplacer vers la deuxième case. Après cela, j'ai besoin de mettre à jour la base de données avec les valeurs/éléments sélectionnés.Transférer des valeurs d'une zone de sélection à une autre

+0

Pouvez-vous envoyer le code que vous avez actuellement? – tfwright

+0

Cela ressemble à une demande "Quelqu'un peut-il s'il vous plaît écrire du code pour moi". – Pointy

+0

Je n'ai pas de bon code. Je suis très nouveau sur les rails, et je ne sais pas par où commencer. Premièrement, est-ce possible avec scriptaculous, ou dois-je utiliser une gemme différente? –

Répondre

1

Première étape: codez une boucle pour remplir la première boîte avec les valeurs db. Suivant: Faites glisser & Drop va devenir plus compliqué que vous voulez si vous êtes juste débutant. Selon la configuration, vous pouvez faire un événement onclick() assez simple pour mettre à jour la deuxième case et ne pas avoir besoin d'un bouton, mais pour correspondre au comportement que vous avez indiqué, pointez le bouton sur une fonction javascript qui regarde la valeur pour la première case, puis les ajoute à la deuxième case. Il y a probablement des manières plus élégantes de le faire, mais en utilisant simplement .innerhtml devrait fonctionner.

Enfin: codez la page de traitement pour utiliser la mise à jour de la base de données en fonction des valeurs de la deuxième zone.

Je ne comprends pas ce que la deuxième case est en train d'accomplir. Est-ce comme un aperçu (voici ce que je vais ajouter à la DB si vous cliquez sur soumettre) type de chose?

+0

Je fini par faire une emboîtées en utilisant AJAX et une partie render:

Sélectionnez un utilisateur à ajouter:
<% form_tag: action => "créer" do%> <% = select_tag "ntuserid", options_for_select (@names, []), {: size => 1,: include_ blank =>: true}%> <% = observer_field "ntuserid",: update => "détails", : avec => 'ntuserid », : url => {: controller => "utilisateurs",: action => "get_user_details" }%>
Cela fonctionne très bien. Merci pour l'aide! –