0

ユーザーのFacebookIDを収集するチェックボックス付きのフォームがあります。それらのIDを使用してアプリリクエストを送信したいと思います。

フォームが送信されると、Facebook IDのリストが生成され、メソッドが実行されsendrequestます。

これがビューhome.html.erbの私のフォームです

    <%= form_tag sendrequest_path do%>
        <%=check_box_tag "friendids[]", 12345 %>
        <%=check_box_tag "friendids[]", 67890 %>
        <%=submit_tag "send requests"%>
    <% end %>

sendrequestフォームが送信されたときに、どういうわけか以下のJavaScriptを実行したいと思います。ただし、注意点は、friendsid[]リストを反復処理する必要があることです。

 <script>
  FB.init({
    appId  : 'YOUR_APP_ID',
    frictionlessRequests: true
  });

  function sendRequestToRecipients() {
    var user_ids = document.getElementsByName("user_ids")[0].value;
    FB.ui({method: 'apprequests',
      message: 'My Great Request',
      to: 

特にここでは、params [:friendids]を反復処理する必要があります。Facebookは、コンマで区切られている限り複数のリクエストを許可するため to: "12345,67890"、この例では機能します。どうすればこれを行うことができますか?

4

1 に答える 1

1

jqueryを使用している場合は、次の操作を実行できます。

まず、フォームにIDを割り当てます

<%= form_tag sendrequest_path, id: 'send-request-form' do %>

次に、そのフォームの送信イベントを観察し、チェックされているすべてのチェックボックスのリストを取得します。それで

$('#send-request-form').submit(function() {
  var friendIds = $(this).find(':checkbox:checked').map(function() { return this.value })
  // then you can use friendIds.join(',') as the comma separated list of friend ids
  sendRequestToRecipients(friendIds.joins(',')) 
});

function sendRequestToRecipients(ids) {
   // use ids in this function
}
于 2013-02-24T07:36:40.933 に答える