satu form dengan dua button
Posted by: -ad- on: 29 April 2008
- In: Ruby | Ruby on Rails
- 1 Comment
Dari kemaren bingung gimana buat 2 button */lebih* dalam satu form dengan ruby.. Coba pake “button_to” kaya gini :
<% form_tag :action => 'list' do %>
<label for="jurnal_jenis">Jenis</label>
<%= select('jurnal', 'jenis', [ "Jurnal Umum", "Jurnal Penyesuaian", "Jurnal Penutup", "Jurnal Koreksi"] ) %>
<%= submit_tag "Cari" %>
<%= button_to "Buat Jurnal", :action => "new" %>
<% end %>
Tapi button “Buat Jurnal” malah masuk ke “list”, bukan “new”.. Karena dia ngambil action dari form yang terluar *ga tau tuu knapa gitu*
Coba “button_to”nya dikeluarin, bisa masuk ke “new, tapi inputan optionnya user ga keambil.. 😦
Dan setelah berbingung^^ ria, coba^^, trus tanya^^ di milis ruby indonesia, akhirnya dapet juga jawabannya.. ternyata pake javascript aja.. Jadi gini :
<script type="text/javascript">
function klik()
{
document.formpencarian.action = "/jurnal/new";
document.formpencarian.submit();
}
</script>
<form id="formpencarian" action="/jurnal/list" method="post">
<label for="jurnal_jenis">Jenis</label>
<%= select('jurnal', 'jenis', [ "Jurnal Umum", "Jurnal Penyesuaian", "Jurnal Penutup", "Jurnal Koreksi"] ) %>
<%= submit_tag "Cari" %>
<%= button_to_function "Buat Jurnal", "klik()" %>
</form>
BERHASIL.. HOREE!! 😀 😀
Trus dapet masukan baru juga dari milis.. Bahwa setiap value/display pada button *dari helper submit_tag* dalam form akan dikirim saat form disubmit, dan tersedia dengan key “commit” pada hash “params”.
Sehingga <% button_to “button1” %> menyebabkan “params[:commit]” akan memiliki value “button1”.
Dan <% button_to “button2” %> menyebabkan “params[:commit]” akan memiliki value “button2”, dst..
Tapi ga ngerti.. knapa ga berhasil^^ yaa nyoba manfaatin cara ini?? “params[:commit]” tetep ga ada isi… 😦
*kata orang siy bagus kalo masih bingung, brarti masih harus banyak belajar lagi.. hehehe*
1 | elokcomputer
25 November 2008 pada 19:44
Lagi seneng2nya ngotak-ngatik Rails neh … hihihi
btw kLo ada yg Baru soaL rails sHare ke aq yah ^_^