Exécuter une requete sql lors d'un click sur un bouton

Résolu
fra -  
Fraa_w Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
après plus de deux jours de recherche sur des forums et des vidéos je n'arrive toujours pas à trouver une solution à mon problème
d'ailleurs je ne sais pas si c'est vraiment possible !

dans une page.php je veux mettre un bouton à partir duquel on récupère des informations depuis ma base de données () que lorsque on clique sur ce bouton.

Je vous remercie



Configuration: Windows / Firefox 91.0

5 réponses


 
Bonjour,

Tu peux faire une page php qui contient un formulaire avec seulement un bouton et un champ caché, la page s'auto appelle et on teste pour voir si le champ caché est bien renseigné, auquel cas on execute le code php désiré

<body>
<form action= "<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="application/x-www-form-urlencoded">
<div>
<input type="hidden" name="suite" value="C'est parti" />
<input type="submit" value="Démarrer" />
</div>
</form>
<?php
if(isset($_POST["suite"]))
{
echo "<h2>". $_POST["suite"]. "</h2>";
}
?>
</body> 

0
fra
 
tout d'abord je te remercie pour ta réponse, comme je suis débutant je n'ai pas bien saisi le concept du formulaire



<body>
<!-- Voici le bouton -->
<button id="id1">bouton 1</button>

<?php
// ceci est la requete que je veux executer après le clique

$team1 = $database->query('SELECT nom FROM teams WHERE id = 1');
$team1 = $team1->fetch();

?>

<!-- en suite recuperer le resulat ici par exemple ici -->
<button id="resultat"> <?php echo $team1[0]?> </button>

</body>
0

 
Tu remplaces l'echo de ma ligne 11 par ta requete sql

<body>
<form action= "<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="application/x-www-form-urlencoded">
<div>
<input type="hidden" name="suite" value="C'est parti" />
<input type="submit" value="Démarrer" />
</div>
</form>
<?php
if(isset($_POST["suite"]))
{
  $team1 = $database->query('SELECT nom FROM teams WHERE id = 1');
  $team1 = $team1->fetch();
  echo $team1[0];
}
?>
</body> 


PS : Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icônes pour l'enrichissement du texte. Celle qui a cet aspect
<> ▼
permet d'appliquer au code, suivant une liste de valeurs, le format correspondant à sa nature (C, Python, Shell, ...).

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Bonjour,

La première question à se poser c'est :
Veux tu que les données apparaissent sans recharger le reste de la page .... ou tu t'en moques ??

Si tu t'en moques.. dans ce cas.. oui, un formulaire suffira.

Si tu ne veux pas que le reste de la page se réactualise (comme quand tu fais F5 sur ton clavier ..) là ça se complique .. car il faudra utiliser du javascript + ajax.

Partons du principe que tu veux faire au plus simple et que le refresh ne soit pas dérangeant pour toi..

Dans ce cas :

<?php
//on place de préférence le maximum de code PHP  AVANT le début du code html ...


// code de connexion à la bdd
// ....
//...

//traitement du formulaire 
if( isset($_POST['id1'])  ){
  // ceci est la requete que je veux executer après le clique 
  try{
     $req = $database->query('SELECT nom FROM teams WHERE id = 1');
     $team1 = $req->fetch();
  }catch(Exception $e){
     echo "Erreur " . $e->getMessage();
  }
     $nom = !empty($team1['nom']) ? $team1['nom']: "";
}
?>
<Doctype html>
<html> 
  ...


<body>
<form action="" method="post" >
<!-- Voici le bouton -->
<button type="submit" id="id1" name="id1">bouton 1</button>

<!-- en suite recuperer le resulat ici par exemple ici  -->
<button id="resultat"> <?php echo $nom; ?> </button>
</form>

</body>
</html>


0
Fraa_w Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
merci beaucoup jordan pour ta réponse ça a l'air de fonctionner, j'ai juste une petite erreur avant de cliquer sur le bouton.

image lors du chargement de la page



image après le clique

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Ah oui .. il faut déplacer la ligne
 $nom = !empty($team1['nom']) ? $team1['nom']: "";

après la fin du IF ( donc en dessous de la ligne 19 actuelle)
0
Fraa_w Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Quand je fais ça il m'affiche le résultat lors du chargement de la page (avant de cliquer sur le bouton)
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   > Fraa_w Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
Heuuu... Qu'as tu fais au juste
0
Fraa_w Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Voici ce que j'ai fait



j'ai repris ton code et j'ai décalé ça : $nom = !empty($team1['nom']) ? $team1['nom']: "";

vers la fin de la condition If


<?php
//on place de préférence le maximum de code PHP AVANT le début du code html ...


// code de connexion à la bdd
// ....
//...

//traitement du formulaire
if( isset($_POST['id1']) )
{
// ceci est la requete que je veux executer après le clique

$database = new PDO ('mysql:host=localhost;dbname=visualisation', 'root','');

try
{
$req = $database->query('SELECT nom FROM teams WHERE id = 1');
$team1 = $req->fetch();
}catch(Exception $e){
echo "Erreur " . $e->getMessage();
}
}

$nom = !empty($team1['nom']) ? $team1['nom']: "";

?>


<form action="" method="post" >
<!-- Voici le bouton -->
<button class="custom-btn btn-4" type="submit" id="id1" name="id1">bouton 1</button>

<!-- en suite recuperer le resulat ici par exemple ici -->
<button class="custom-btn btn-4" id="resultat"> <?php echo $nom ; ?> </button>
</form>
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   > Fraa_w Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
Déjà, tu n'as pas utiliser les balises de code...

Ensuite, qu'est-ce qui ne fonctionne pas dans ce code ?
Il me semble juste...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fraa_w Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai une toute dernière question si vous pouvez me donner une piste

Est ce que c'est possible d'afficher le bouton qui comporte le résultat dans une autre page.php

"" Quand on clique sur le bouton ( bouton1 ) ça ouvre une nouvelle page qui comporte le bouton (G_Conso) ""


Merciiii
0