2009-07-17 7 views
0

J'ai une liste d'articles affichés sur ma page.formulaires imbriqués (question de conception)

  1. Point A [Modifier]
  2. article B [Modifier]
  3. article C [Modifier]

Chaque élément est modifiable Lorsque vous cliquez sur une icône d'édition. Le formulaire d'édition est affiché avec un appel ajax et le contrôleur renvoie un formulaire.

  1. formulaire d'édition pour le point A [Enregistrer]
  2. article B [Modifier]
  3. article C [Modifier]

Mais la liste est en vrac modifiable et ainsi chaque élément a également une case à cocher à côté de celui-ci.

  1. [cb] Point A [Modifier]
  2. [cb] Point B [Modifier]
  3. [cb] Article C [Modifier]

Et une forme est dans la liste.

form_tag 1. [cb] Point A [Modifier] 2. [cb] Point B [Modifier] 3. [cb] Article C [Modifier] action: sélectionnez [Modifier bloc] fin

Donc quand je clique sur un bouton d'édition d'élément, depuis qu'un formulaire est retourné, j'ai 2 formulaires imbriqués. Et toutes les coupures de code.

Que puis-je faire? Je n'ai pas le formulaire d'édition groupée autour de tous les éléments et se termine avec 2 formulaires imbriqués?

Merci, Mickael.

Répondre

2

J'ai résolu mon problème en utilisant javascript. Lors du chargement du formulaire d'édition, le bouton Envoyer ne soumet pas le formulaire mais appelle une requête Ajax qui envoie les paramètres du formulaire à la bonne URL.

0

Vous ne pouvez pas avoir de formes imbriquées ... En fait, si vous essayez de valider, vous aurez une grosse erreur html.

La solution à votre problème, je pense est la suivante: lorsque vous faites la requête ajax et vous retournez le formulaire d'édition, vous pouvez injecter le code à la fin de votre code HTML et l'afficher dans une fenêtre modale sur un projet il y a quelques mois).

Cependant, je ne sais pas comment fonctionne RoR il est donc juste une idée: P

0

Vous pourriez probablement le résoudre par la puissance du CSS et le faire apparaître comme si les formes sont imbriquées ... bien que dans fait réel, ils ne sont pas. De mes connaissances limitées en matière de CSS, il est préférable de confier cette tâche à un ingénieur de la partie frontale, ou à Google.

+0

Aussi, pourrait être utile si quelqu'un pourrait étiqueter cette question comme css –

+0

C'est un hack, mais HTML5 résoudra le problème avec l'attribut "form"/"propriétaire du formulaire". – Nishi

0

Vous pouvez mettre en surbrillance les lignes sélectionnées et lier l'événement "click" pour qu'elles puissent basculer les lignes comme sélectionnées/non sélectionnées. Ensuite, lorsque vous cliquez sur Envoyer, vous envoyez simplement les lignes avec la classe "hilight".

Vous pouvez laisser hors la case à cocher et rendre la structure quelque chose comme ceci: ... ... ..etc

Puis, avec jquery vous pourriez lier cliquez événement sur eux, comme:

$('.checked').click(function(e) { 
    $(this).toggleClass('hilight'); 
}); 
Questions connexes