I think you don't get Client side vs Server side. Common problem.
PHP is a server side language, meaning it lives on the server.
HTML is client side, it's not even a programming language but a mark up language to display content.
Everytim you request a page, that request enters a webserver, that webserver then has a PHP file that handles the request and sends back a HTML file.
Everytime you want the server (the php files) to do something, you have to send a request.
So, how do we send a request? Different options here:
A simple GET request can be send using a button, or an anchor () or a form. But, know that they not only send a request, they direct the current webpage to the given URL, thus creating a request.
When using a Form, one could also send a POST, DELETE, PUT, ... request to the server.
Sometimes however, you want to send a request to the server, without refreshing/directing the page of the user. This can't be done using HTML.
But, there is JavaScript that can help us a lot.
The technique used here is called AJAX and you can read a lot about is on the internet ;)