Je m'exerce à créer une application web dans Sinatra et j'essaye de mettre à jour une page pour que les informations d'une base de données soient affichées une fois sur un bouton est cliqué (plus précisément, je suis en utilisant une base de données d'étudiants avec l'âge des étudiants, le nom et l'emplacement du campus). J'ai un itinéraire avec 5 boutons (un pour chaque campus) et une fois qu'un bouton de campus est cliqué, je veux que la page mette à jour avec toutes les informations des étudiants (de ce campus) sur la même page.Comment afficher les données sur la même page après avoir cliqué sur un bouton [Sinatra/Ruby]
C'est ce que je le app.rb
require 'sinatra'
require 'sqlite3'
set :public_folder, File.dirname(__FILE__) + '/static'
db = SQLite3::Database.new("students.db")
db.results_as_hash = true
get '/' do
@students = db.execute("SELECT * FROM students")
erb :home
end
get '/students/new' do
erb :new_student
end
get '/students/campus' do
erb :campus
end
get '/students/campus/:campus' do
erb :campus
campus_data = db.execute("SELECT * FROM students WHERE campus=?", params[:campus])
campus_data.to_s
response = ""
campus_data.each do |student|
response << "ID: #{student['id']}<br>"
response << "Name: #{student['name']}<br>"
response << "Age: #{student['age']}<br>"
response << "Campus: #{student['campus']}<br><br>"
end
response
end
post '/students' do
db.execute("INSERT INTO students (name, campus, age) VALUES (?,?,?)", [params['name'], params['campus'], params['age'].to_i])
redirect '/'
end
C'est ce que je le campus.erb
<!DOCTYPE html>
<html>
<head>
<title>Campus Cohorts</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h1>Cohorts</h1>
<p>Click on a button to see all students from that location.</p>
<a href="/students/campus/SF"><button type="button">San Francisco</button></a>
<a href="/students/campus/NYC"><button type="button">New York City</button></a>
<a href="/students/campus/SD"><button type="button">San Diego</button></a>
<a href="/students/campus/CHI"><button type="button">Chicago</button></a>
<a href="/students/campus/SEA"><button type="button">Seattle</button></a>
</body>
</html>
Actuellement, si un bouton est cliqué il redirigera vous à une nouvelle page avec le formulaire d'information des étudiants de ce campus, comment puis-je rendre l'information sur la même page?