Apesar de javascript ser uma abordagem muito comum, conforme listado acima, não é a abordagem correta segundo as definições da W3C.

O correto seria utilizar o método DELETE. Entretanto, não é possível utilizar o método DELETE em um browser. Apenas GET ou POST.

Com um link, apenas é possível utilizar o método GET. GET tem como objetivo exclusivo retornar informações de um storage. Por outro lado, POST, tem como objetivo exclusivo modificar informações em um banco de dados. Deletar é uma alteração do banco de dados.

Para utilizar o método POST, é necessário utilizar um formulário. Além do mais, você quer validar a exclusão. Para tal, é possível utilizar um pequeno "truque".

Chamarei essa página de list.php, aonde tem a lista de todos os registros <a href="delete.php?id=1" title="Excluir o registro" >excluir</a> delete.php: <?php if($_SERVER['REQUEST_METHOD'] == 'POST') { if ($_POST['delete'] == 'yes') { try { $statement = $pdo->prepare('DELETE FROM table WHERE id = :id'); $statement->bindValue(':id' , $_POST['id'] , PDO::PARAM_INT); $statement->execute(); } catch (PDOException $exception) { /** ações a serem realizadas caso não excluiu o registro **/ } } header("Location: list.php"); exit(); } ?> <p>Tem certeza que deseja deletar o registro <?= $_GET['id'] ?>?</p> <form action="delete.php" method="post"> <input type="hidden" name="id" value="<?= $_GET['id'] ?>" /> <button name="delete" value="yes">Sim</button> <button name="delete" value="no">Não</button> </form> No exemplo acima, basicamente será feita uma requisição GET para a página de exclusão. Será verificado que é uma requisição GET e exibirá o formulário para exclusão. Caso opte por excluir ou não, será feita uma requisição POST, validando a escolha. Caso decida por excluir, será excluído o registro e redirecionado para a lista completa. Caso escolha por não excluir, será apenas redirecionado para a lista.

Esse é apenas um exemplo básico estrutural, pode ser modificado conforme a necessidade e ser acoplado em um framework. Como pode ser visto na documentação do Zend Framework.

Para javascript ser correto, teria que utilizar Ajax. Mas, dessa forma, teria que pensar em Unobtrusive JavaScript