簡體   English   中英

選擇 phone_number 屬性 On Button Click

[英]Pick phone_number attribute On Button Click

我有一個如下所示的索引文件,它是從數據庫中挑選信息並顯示一個列表。

我希望能夠選擇用戶單擊聯系人按鈕時的電話號碼,以便向該電話號碼發送短信。

<div class="flex flex-col min-h-screen bg-white">
  <div class="max-w-4xl flex items-center h-auto lg:h-screen flex-wrap mx-auto my-32 lg:my-0">
    <% @providers.each do |provider| %>
      <!--Main Col-->
      <div id="profile" class="w-full lg:w-3/5 rounded-lg lg:rounded-l-lg lg:rounded-r-none shadow-2xl bg-white opacity-75 mx-6 lg:mx-0">
        <div class="p-4 md:p-12 text-center lg:text-left">
          <!-- Image for mobile view-->
          <div class="block lg:hidden rounded-full shadow-xl mx-auto -mt-16 h-48 w-48 bg-cover bg-center" style="background-image: url('https://source.unsplash.com/MP0IUfwrn0A')"></div>
          <%= image_tag provider.avatar.variant(resize_to_limit: [150, nil]), class: "w-100 h-100 rounded-full" %>
          <h1 class="text-3xl font-bold pt-8 lg:pt-0"><%= provider.full_name %></h1>
          <div class="mx-auto lg:mx-0 w-4/5 pt-3 border-b-2 border-teal-500 opacity-25"></div>
          <p class="invisible">
            <p>Services:</p>
            <% provider.service.each do |s| %>
              <p class="pt-4 text-base font-bold flex items-center justify-center lg:justify-start">
                <%= s %>
              </p>
            <% end %>
          </p>
          <p class="pt-2 text-gray-600 text-xs lg:text-sm flex items-center justify-center lg:justify-start">

            <%= provider.zip_code %></p>
          <p class="pt-8 text-sm"><%= provider.brief_description %></p>
          <!-- <p><%= provider.phone_number %></p> -->
          <div class="pt-12 pb-8">
            <%= button_tag "Contact", class: "bg-teal-700 hover:bg-teal-900 text-white font-bold py-2 px-4 rounded-full"%>
          </div>
        </div>
      </div>
    <% end %>
    <!-- Pin to top right corner -->
  </div>
</div>

這是上面代碼的結果:

在此處輸入圖像描述

我已經用下面的代碼對 JS 進行了試驗,但我只選擇了其中一項的 phone_number,當我單擊提交按鈕時,它會出現在所有 rest 中。

<%= javascript_tag do %>
   <% @providers.each do |p|%>
      window.providerPhone = '<%= j p.phone_number %>';
    <% end %>
 <% end %>
  <div class="pt-12 pb-8">
    <%= button_tag "Contact", class: "bg-teal-700 hover:bg-teal-900 text-white font-bold py-2 px-4 rounded-full", :onclick => "alert(providerPhone)" %> 
  </div>

我認為我必須使用 JS,但我不確定如何使用 go。 我遇到了這個,但它沒有幫助。 我該如何解決這個問題。 謝謝。

您是否嘗試過each_with_index像這樣:

<%= javascript_tag do %>
   <% @providers.each_with_index do |p, index|%>
      window.providerPhone = '<%= j p[index].phone_number %>';
    <% end %>
 <% end %>
  <div class="pt-12 pb-8">
    <%= button_tag "Contact", class: "bg-teal-700 hover:bg-teal-900 text-white font-bold py-2 px-4 rounded-full", :onclick => "alert(providerPhone)" %> 
  </div>

我所做的是像這樣在按鈕周圍包裹一個<a> tag

<div class="pt-12 pb-8">
  <a href="<%= providers_notify_path(provider_phone: provider.phone_number, provider_serv: provider.service)%>">
     <%= button_tag "Contact", class: "bg-teal-700 hover:bg-teal-900 text-white font-bold py-2 px-4 rounded-full"%>
   </a>
</div>

我只是在<a> tag中包含了一個帶有href的路徑。 我使用的路徑是: providers_notify_path 然后我在路徑中的另一個 controller 中傳遞了我想要訪問的值。 在這種情況下,我從provider_phone中選擇了provider.phone_number

因此,要使用 controller 中的provider_phone值,我這樣做了:

@provider_phone = params[:provider_phone]

然后我可以在我想要的操作中使用實例變量@provider_phone ,在特定情況下是create操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM