Мух от котлет отдели для начала.
Запрос в бд делает бэк. Кнопка только инициирует http-запрос по некоторому url.
Соответственно на уровне фронта ты можешь менять положение кнопки, надпись на ней и url, который будет дёргаться.
При этом дёргать тоже можно по-разному - можно обычным form submit и js'ом менять адрес сабмита, таким образом вызывая разные контроллеры бэка; а можно по нажатию делать http request аяксом - это сложнее, но в теории гибче.