Единственное, что изменится в зависимости от отправленной формы, - это массив $ _POST. Другие переменные, такие как $ subject, будут такими же, что бы ни делал пользователь; PHP не собирается угадывать, какими вы хотите, чтобы они были.
У вас уже есть logi c проверка, нажал ли пользователь любую кнопку:
if(isset($_POST['sub'])){ ... }
Определить , какую кнопку они нажали, достаточно просто посмотреть на ту же самую переменную:
echo $_POST['sub'];
То же самое касается любых других добавляемых вами элементов управления формой - выбор пользователя будет в конечном итоге в $ _POST, и вы должны прочитать их оттуда.
Также стоит помнить, что logi c для отображает форма не должна быть в то же место, что и logi c для обработки отправленной формы, поэтому тот факт, что эти кнопки генерируются динамически, не влияет на то, как вы читаете отправленные данные обратно. Вы даже не можете гарантировать, что пользователь вообще использовал вашу форму, он мог написать свою собственную и отправить ее на ваш сервер или отредактировать ее с помощью инструментов отладки своего браузера.