2 Übermitteln Sie Schaltflächen in einem Formular

8

Ich habe eine Frage zu Formularen. Ich habe ein ziemlich standardisiertes Formular, das einen Beitrag (in meiner App eReport genannt) mit einem Titel und einem Textkörper speichert. Die Tabelle hat auch ein "published" -Feld, das boolesch ist. Der gespeicherte eReport wird nur auf der öffentlichen Website angezeigt, wenn dieses Feld auf "true" gesetzt ist, wobei "false" der Standardwert ist.

Anstelle des Standard-Kontrollkästchens möchte ich zwei Schaltflächen am Ende des Formulars anzeigen: eine Schaltfläche "Jetzt veröffentlichen" und eine Schaltfläche "Als Entwurf speichern". Wenn der Benutzer die erste drückt, wird das veröffentlichte Feld auf wahr gesetzt. Wenn letzteres, dann falsch. In PHP habe ich zwei Submit-Felder mit unterschiedlichen Namenwerten angezeigt und behandle dann die Eingabe mit einer if / else-Anweisung, um die richtige zu erstellende SQL-Abfrage zu bestimmen. In Rails gehe ich davon aus, dass ich diese Logik im Controller unter der entsprechenden Aktion platzieren würde, aber ich bin mir nicht sicher, wie man den Namen oder die ID-Werte von Schaltflächen manipuliert.

Für den Datensatz verwende ich Formtastic, aber wenn mir jemand mit den Standard-Rails-Formular-Tags zeigen könnte, ist das auch in Ordnung. Hier ist der Code für mein Formular, wie es gerade steht:

%Vor%

Vielen Dank im Voraus für die Hilfe!

    
joshukraine 11.03.2011, 10:55
quelle

3 Antworten

20

Ich weiß nicht über formtastic, aber mit dem Standard-Formular Builder für Rails, könnte man es so machen:

%Vor%

Dann können Sie in der Steuerung diese in params auswählen:

%Vor%     
idlefingers 11.03.2011, 12:01
quelle
1

Zusätzlich zu @iddlefingers Antwort, hier ist eine Ansicht des Protokolls der Anwendung (Striping einige nutzlose Params aufgrund der Erklärung)

%Vor%

Hier können wir sehen, dass comentar der Name des Parameters ist und "Confirmar" sein Wert ist, der auch der Text der Schaltfläche ist.

welches von submit_tag "Confirmar", :name => 'comentar'

erhalten wurde

Also könnten Sie im Allgemeinen (wenn Sie die Anzahl von params reduzieren möchten, mit denen Sie arbeiten) mehrere submit_tag "onevalue", :name => 'SAMEname' , submit_tag "othervalue", :name => 'SAMEname' ...

haben

und rufen Sie sie in Ihrem Controller

ab %Vor%     
juanm55 25.10.2011 18:04
quelle
0

Ich denke, Sie müssen jQuery verwenden. Sie können das Ereignis click click binden und das Formular für den angegebenen Speicherort senden.

    
Ashish 11.03.2011 11:03
quelle

Tags und Links