3日後からナッツを運転している、非常にトリッキーな新しい質問があります。Rails 3:トリッキーな1つ...モーダル後の選択ボックスをリフレッシュせずにページ全体をリロードする
私は(アカウントを選択するユーザーのための)選択ボックスでビューを持っている:ここ は、ビューの一部である:ここでは次に
div id="boxplot">
<div id="box1">
Sur quel compte?<br />
<div id="banque"><%= render 'banque', :f => f %></div><br /><br />
Combien?<br />
<%= f.text_field :montant %>
</div>
は部分的である:
<%= f.select(:debit, @in.collect {|p| [p.nom, p.numero]} + ['Ajouter...'], {:include_blank => 'Sur quel compte?'})%>
あなたが見ることができるように、コントローラーの新しいアクションに変数があります。
ユーザーに「新しいアカウントを追加する」可能性を与えるためのモーダルボックスを実装していますか(compteはもちろん別のモデルです)。ここにJavascriptがあります。それは「... Ajouter」をユーザーが選択した場合だけチェックし、シンプルだし、YESの場合はcompteモデルに新しいレコードを作成するためのiframeを開く:
$(function() {
$('#banque').change(function()
{
$a = $('#journal_debit').val();
if ($a == "Ajouter...") {
$.fancybox({
'width': '70%',
'height': '70%',
'autoScale': false,
'transitionIn': 'fade',
'transitionOut': 'fade',
'type': 'iframe',
'scrolling': 'no',
'padding': 45,
'showCloseButton': true,
'title': "Ajouter un nouveau compte" ,
'titleShow': true,
'titlePosition': 'over' ,
'onComplete': function() {
$("#fancybox-title").css({'top':'0px', 'bottom':'auto'});
},
'href': '/comptes/modal/'
});
}
else
{
}
});
})
私はcreate.js.erbとJSでこの要求を提出します:すべてはここまで細かいが、親フォームに戻ってくる作品
$(function() {
parent.$.fancybox.close();
})
、私の選択ボックスは、(私は新しい作成したアカウントは、選択ボックスに表示されていないわけ...)更新されません。
それを得るため唯一の方法はcreate.js.erbするために、この1を追加することです:
parent.location.reload(true);
しかし、問題は、ページ全体をリロードするには、ユーザがモーダルをトリガする前にinputedはずのデータを失うことになるということですボックス...
私はこのトリッキーな方法を見つけることができません。ページの一部だけをリロードすることは可能ですか(たとえば選択ボックスを含む部分)が可能ですか?はいの場合は@variableをリフレッシュする方法は?
また、私が後にしていることを達成するためのクールな方法がありますか?
ありがとうございました。
私はそれを実装するときに、私はそれを実装すると、@会社はモーダルから作成された新しい会社を含んでいません... – Dannoel
モーダルで新しいレコードを作成した後、どうすれば@variableを "リロード"できますか? – Dannoel