J'ai un peu avancé.
Visiblement la requête ajax ne s'active pas ou bien elle n'arrive pas à transmettre la variable $id_categorie_recette_selected à mon select (dans le formulaire tpl).
Si quelqu'un voit une erreur, je suis preneuse ![]()
Ajax (dans le tpl, oui je sais c'est pas bien) :
<script> $(document).ready(function(){ load_data(); function load_data(query=''){ $.ajax({ url:"AdminGestionFabricationController.php", method:"POST" }) } //Récupération et attribution de la catégorie sélectionnée à la variable $id_categorie_recette_selected function getFilterId(){ $('#categorieRecetteSelect').change(function(){ var id_categorie_recette_selected = null; id_categorie_recette_selected = $("#categorieRecetteSelect").val(); return id_categorie_recette_selected; }) } }); </script>
Appel de la variable dans le formulaire :
<div class="form-group col"> <label for="recetteDataList">Nom de la recette :</label> {if isset($id_categorie_recette_selected) != null} {assign var=recettes value=Recette::getRecettesByCategorie($id_categorie_recette_selected)} {else} {assign var=recettes value=Recette::getRecettes()} {/if} <select class="form-control" id="recetteDataList"> <option selected="selected">Choisir une recette</option> {foreach from=$recettes item=recette} <option value="{$recette.id_recette}">{$recette.nom_recette}</option> {/foreach} </select> </div>
Update :
J'ai tenté 3 variations pour mon ajax mais j'ai aucun retour dans la console ni d'alerte donc visiblement ça ne passe jamais dans ce code =/
$(document).ready(function(){ load_data(); function load_data(query=''){ $.ajax({ url:"AdminGestionFabricationController.php", method:"POST" }) } //Récupération et attribution de la catégorie sélectionnée à la variable $id_categorie_recette_selected function getFilterId(){ $('#categorieRecetteSelect').change(function(){ console.log('onChange'); alert("onChange"); var $id_categorie_recette_selected = null; $id_categorie_recette_selected = $("#categorieRecetteSelect").val(); console.log('Selected : '. $id_categorie_recette_selected); return $id_categorie_recette_selected; }) } }); ///////////////////////////////////////////////////////// $(document).ready(function(){ $( "#categorieRecetteSelect" ).change(function() { var id_categorie_recette = $('#categorieRecetteSelect :selected').val(); console.log('Selected value : ' + id_categorie_recette); var id_categorie_recette = $(this).val(); $.ajax({ method : POST, url: '../modules/gestionProduction/controllers/admin/AdminGestionFabricationController.php', data: 'id_categorie_recette='+ id_categorie_recette, dataType: 'html', success: function(json) { return id_categorie_recette_selected; } }); console.log('Data : ' + return $id_categorie_recette_selected); return id_categorie_recette_selected; }); } //////////////////////////////////////////////////////////// $( document ).ready(function() { $("#categorieRecetteSelect").change(function(){ console.log('onChange'); alert("onChange"); $.ajax({ url : '../modules/gestionProduction/controllers/admin/AdminGestionFabricationController.php', // La ressource ciblée type : 'GET', // Le type de la requête HTTP. data : 'id_categorie_recette=' + id_categorie_recette, dataType : 'html' // Le type de données à recevoir, ici, du HTML. }); }); }
.png.022b5452a8f28f552bc9430097a16da2.png)