Affichage d'une requête et mis a jour au click du formulaire
Bonjour,
je ne suis pas de tout expert en Ajax, j'ai une base de donnée avec une table catégorie. Pour administrer j'ai crée un formulaire(dans une page administrateur.php) pour créer une nouvelle catégorie. Je voudrais à coté du formulaire dans un div faire apparaitre toutes mes catégories et chaque fois que je soumet le formulaire pour en créer une, la liste dans le div se mets à jour avec une requête AJAX.
Mes problèmes avec mon code :
Quand je soumet le formulaire je vois juste un court instant ma liste vu que ma page se recharge, j'ai besoin de soumettre le formulaire pour créer une nouvelle catégorie.
Est ce que il y a possibilité avec une requete AJAX d'avoir la liste deja afficher avant de soumettre le formulaire puis quand à la soumission du formulaire la liste s'affiche à jour ?
voici mon code :
ma page de formulaire dans createCategories.php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <div class= "col-md-5 border border-grey p-3 m-3 ">
<form action="administration.php" enctype="multipart/form-data" method="post">
<h5>Créer une catégorie</h5>
<div class="form-group mb-1">
<label for="nom">nom *</label>
<input type="nom" class="form-control" name="nom" required>
</div>
<div class="form-group mb-3">
<label for="affiche">photo *</label>
<input type="file" class="form-control-file d-block bg-white p-3" name="file" value="" required>
</div>
<input type="submit" name="submitCreateCategorie" class="mb-3" value="envoyer" onclick="loadDoc()">
</form>
</div> |
dans ma page administration.php j'appelle la page du formulaire :
Code:
<?php require 'formCreateCategories.php '?>
mon code AJAX :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <script type="text/JavaScript">
//-------récupérer lobjet XMLHttpRequest----------------
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("categories").innerHTML = this.responseText;
}
};
xhttp.open("GET", "categories.ajax.php", true);
xhttp.send();
}
</script> |
puis la requete sur une page categories.ajax.php :
Code:
1 2 3 4 5 6 7 8 9 10
| <?php require_once '../controller/controllerCategories.php'?>
<?php
$categoriesController = new ControllerCategories();
$categories = $categoriesController->getCategories();
?>
<ul>
<?php foreach($categories as $cat) :?>
<li><?=$cat["nom"]?></li>
<?php endforeach ?>
</ul> |
Mon code marche c'est juste la mise en place qui me pose problème.
Merci