function copy_memo(){
<%= remote_function(:url => {:action => "copy_memo"},
:complete => "$('memo_area').value = request.responseText",
:with =>"'year='+$('year').value+
'&month='+$('month').value+
'&day='+$('day').value+
'&user='+$('user').value") %>
}
<input type="button" name="button" value="<%=l('copy_memo')%>"
onclick="copy_memo()" >
上のremote_functionで、下記を生成してくれます。
function copy_memo(){
new Ajax.Request('/xxx/copy_memo',
{asynchronous:true,
evalScripts:true,
onComplete:function(request){$('memo_area').value = request.responseText},
parameters:'year='+$('year').value+
'&month='+$('month').value+
'&day='+$('day').value+
'&user='+$('user').value +
'&authenticity_token=' +
encodeURIComponent('e2uxmpaqqD3l+bMWYOm3r+Yl7KKJuy4WbyNea1Wsc1E=')})
}
Rails2.3.11(あたり?)からCSRF対応で、authenticity_token が自動的にパラメータに追加されるようになったそうです。
remote_functionを使ってない場合は自分で実装を追加する必要があるのでremote_functionを利用するのが便利ですね。
最初は、remote_functionを使わずに実装していたのでログイン情報が消えてハマりました…。
ちなみにパラメータを渡すときは上記のように:with を使います。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。