前提・実現したいこと
筋トレアプリ作成中で以下のようにしたいです
部位ごとに選択したらDBからちがう種目がでるようにしたいです
胸ーベンチ、フライ
背中ーデット、懸垂
脚ースクワット、プレス
初心者なのでわかりやすく教えてもらえたらありがたいです
発生している問題・エラーメッセージ
select.js:35 Uncaught TypeError: url.send is not a function at HTMLSelectElement.<anonymous> (select.js:35)
該当のソースコード
js
1window.addEventListener('DOMContentLoaded', ()=>{ 2 document.querySelector('#part').addEventListener('change',e=>{ 3 const event=document.querySelector('#event'); 4 event.innerHTML=""; 5 if(e.target.value!==""){ 6 var params=new URLSearchParams(); 7 params.append('part',e.target.value); 8 debugger 9 const url= ("GET",'/muscle_events/${params.toString()}'); 10 url.responseType = "Json"; 11 url.send(); 12 url.onload = () => { 13 fetch(url).then(res=>res.json()).then(data=>{ 14 data.forEach(x=>{ 15 event.appendChild(Object.assign(document.createElement('option'),{value:x.event,textContent:x.event})); 16 }); 17 }); 18 } 19 } 20 }); 21});
Controller
1class MuscleEventsController < ApplicationController 2 def index 3 @muscle_events = MuscleEvent.all 4 end 5 6 def get_menu 7 event = MuscleEvent.where(part:params[:part]) 8 events = event.pluck(:event) 9 render json:{ events: events} 10 end 11end 12
view
1<script src="select.js"></script> 2<p>どこの部位を筋トレしますか?</p> 3<%= form_tag url:"root_path" do |f| %> 4 <%= select_tag :part, options_for_select(MuscleEvent.parts.keys.map{|k| [I18n.t("enums.muscleevent.parts.#{k}"), k]}) %> 5 <select id="event"></select> 6<% end %>
routes
1Rails.application.routes.draw do 2 root to: 'muscle_events#index' 3 resources :muscle_event, only: :index 4 get 'muscle_events/:part', to:'muscle_events#get_menu' 5end 6
試したこと
const url= ("GET",'/muscle_events/${params.toString()}');
ここでurlの設定ができてないのはわかるのですがどうかいたらいいのかわからなくて
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー