Bonjour à tous,
Sur ma WebApplication, j'ai une page contrat-fiche.php qui permet d'afficher un contrat et ses prestations.
Sur cette page, j'ai ajouté un bouton <div> qui ouvre un modal (css+javascript trouvé sur W3school)...
Ce modal permet à l'utilisateur de saisir un acompte +date de l'acompte via un mini formulaire.
La validation du formulaire fonctionne parfaitement et pointe vers une autre page PHP 'acompte-ajout.php pour enregistrer dans ma bdd les infos saisies.... Tout fonctionne nickel !
La question est : Quand je suis sur cette page acompte-ajout.php et que le traitement de l'insertion en bdd est terminé, comment revenir à ma page contrat-fiche.php car je dois recharger les infos du contrat qui contiennent maintenant un ou des acomptes. (Pour infos les affichages d'acomptes fonctionnent aussi très bien)...
header('Refresh: 3; URL= contrat-fiche.php'); ne semble pas une bonne méthode d'autant qu'il faut que je passe une variable dans le lien contrat-fiche.php?id_contrat=25 par exemple...
J'ai l'impression que ce dont j'ai besoin c'est d'AJAX pour ne pas avoir à recharger la page ?
contrat-fiche.php
acompte-ajout.php
Merci d'avance pour votre aide !!!
Modifié par etienne69 (17 Mar 2022 - 15:46)
Sur ma WebApplication, j'ai une page contrat-fiche.php qui permet d'afficher un contrat et ses prestations.
Sur cette page, j'ai ajouté un bouton <div> qui ouvre un modal (css+javascript trouvé sur W3school)...
Ce modal permet à l'utilisateur de saisir un acompte +date de l'acompte via un mini formulaire.
La validation du formulaire fonctionne parfaitement et pointe vers une autre page PHP 'acompte-ajout.php pour enregistrer dans ma bdd les infos saisies.... Tout fonctionne nickel !
La question est : Quand je suis sur cette page acompte-ajout.php et que le traitement de l'insertion en bdd est terminé, comment revenir à ma page contrat-fiche.php car je dois recharger les infos du contrat qui contiennent maintenant un ou des acomptes. (Pour infos les affichages d'acomptes fonctionnent aussi très bien)...
header('Refresh: 3; URL= contrat-fiche.php'); ne semble pas une bonne méthode d'autant qu'il faut que je passe une variable dans le lien contrat-fiche.php?id_contrat=25 par exemple...
J'ai l'impression que ce dont j'ai besoin c'est d'AJAX pour ne pas avoir à recharger la page ?
contrat-fiche.php
<a href="#" id="myBtn">
<div class ="btn btn-vert">
ACOMPTE
</div>
</a>
<div class="modal-body">
<form method="post" action="acompte-ajout.php">
<label for="acompte">Entrez l'acompte reçu :</label>
<input class="input-formulaire prix-formulaire" maxlength="7" name="acompte_recu" id="acompte_recu" type="text" required value="" onblur="formatage(this);" onkeypress="return chiffres(event);" autocomplete="off" />
<input class="input-formulaire contrat-date" type="date" id="acompte_date" name="acompte_date"" required value="<?php echo date('d/m/Y'); ?>">
<input type="hidden" name="id_contrat" value="<?php echo $data_contrat['id_contrat'];?>">
</div>
acompte-ajout.php
// On vérifie si l'acompte existe :
if (isset($_POST["acompte_recu"])&& $_POST["acompte_recu"]>0){
// Connexion à la base de données :
require ("connexion.php");
// Récupération des données formulaire :
$id_contrat= $_POST['id_contrat'];
$acompte_recu=$_POST['acompte_recu'];
$acompte_date= $_POST['acompte_date'];
// Enregistrement de l'acompte :
$requete = $bdd->prepare('INSERT INTO acomptes(id_contrat, acompte_recu, acompte_date) VALUES(:id_contrat, :acompte_recu, :acompte_date)');
$requete->execute(array(
'id_contrat' => $id_contrat,
'acompte_recu' => $acompte_recu,
'acompte_date' => $acompte_date
));
// Clôture des requêtes :
$requete->closeCursor();
}
//########################### M O D A L ###########################
// Get the modal
var modal = document.getElementById("myModal");
// Get the button that opens the modal
var btn = document.getElementById("myBtn");
// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];
// When the user clicks the button, open the modal
btn.onclick = function() {
modal.style.display = "block";
}
// When the user clicks on <span> (x), close the modal
span.onclick = function() {
modal.style.display = "none";
}
// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
Merci d'avance pour votre aide !!!
Modifié par etienne69 (17 Mar 2022 - 15:46)