Vraag Meerdere verzendknoppen / formulieren in Rails


Ik probeer een rails-applicatie te schrijven waarmee je naar een bepaalde pagina gaat, zeggen / person /: id. Op deze pagina wordt een reeks beschikbare bronnen weergegeven. Ik wil dat elke bron een knop ernaast heeft, die die bron aan die persoon reserveert (door een nieuw exemplaar van een toewijzingsmodel te maken.) Als extensie zou ik graag verschillende knoppen van elke bron willen gebruiken, die reserveringen annuleren en doen andere dingen. Ik zou ook graag gegevens invoeren naast enkele knoppen, bijvoorbeeld om% van een resource toe te wijzen.

Mijn probleem is dat ik er niet achter kan komen hoe ik dit op een verstandige manier kan doen zonder mezelf te herhalen of een erg hacker-controller te hebben. Hoe kan ik dit doen zonder matching op het waardegedeelte van de submitknoppen (de tekst op de knoppen) of met behulp van een javascript?

Als u bovendien twee formulieren op een pagina hebt, hoe moet u deze dan instellen zodat wijzigingen op beide formulieren worden opgeslagen wanneer op een knop Verzenden wordt geklikt?


12
2018-01-20 15:34


oorsprong


antwoorden:


ik gebruik jQuery, en dit is wat ik deed:

<script type="text/javascript">
    $(document).ready(function() {

        $('#bulk_print').click(function(){
            var target = '<%= bulk_print_prepaid_vouchers_path(:format => :pdf) %>';
            $('#prepaidvoucher_bulk_print').attr('action', target);
            $('#prepaidvoucher_bulk_print').submit();
        });

        $('#bulk_destroy').click(function(){
            var target = '<%= bulk_destroy_prepaid_vouchers_path %>';
            $('#prepaidvoucher_bulk_print').attr('action', target);
            $('#prepaidvoucher_bulk_print').submit();
        });

    });
</script>

<% form_tag '#', :method => :post, :id => 'prepaidvoucher_bulk_print' do %>

your form details

<button class="button" type="submit" id="bulk_print">
   <%= image_tag("web-app-theme/printer.png", :alt => "Print Selected Vouchers") %> Print Selected Vouchers
</button>

<button class="button" type="submit" id="bulk_destroy">
    <%= image_tag("web-app-theme/cross.png", :alt => "Delete Selected Vouchers") %> Delete Selected Vouchers
</button>

<% end %>

Het idee is om de formulieractie on the fly te wijzigen, op basis van de knop waarop wordt geklikt


5
2017-07-08 07:26



Maak van elke rij in de lijst een formulier en plaats daar de informatie over het betreffende item. Natuurlijk moet u de pagina bij elke actie indienen en opnieuw laden. De enige manier om dit te omzeilen is om selectievakjes in plaats van knoppen te gebruiken en het een grote vorm te maken - of om Javascript te gebruiken.

Wat betreft uw tweede vraag, als u wilt dat een verzendknop twee "formulieren" beïnvloedt, moet u ze beide delen van hetzelfde formulier maken. U kunt indien nodig meerdere submitknoppen op het formulier gebruiken. Anders zou u dynamisch een derde formulier kunnen genereren met Javascript gevuld met de waarden van het originele formulier - maar dat zou niet in alle gevallen werken (bijvoorbeeld bestandsinvoer).


1
2018-01-20 22:10