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 html : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
mon code AJAX :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <?php require 'formCreateCategories.php '?>
puis la requete sur une page categories.ajax.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Mon code marche c'est juste la mise en place qui me pose problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Merci
Partager