Bonjour (^-^)/
J'ai développé un formulaire dans lequel il est possible d'ajouter/supprimer des lignes et je cherche à récupérer ma variable counter (qui compte le nombre de lignes ajoutées).
Cette variable est déclarée et incrémentée dans du javascript dans le tpl du formulaire et je voudrais l'exploiter dans mon AdminController (dans la fonction PostProcess() pour être précise).
Je mets le javascript ici mais les dévs sensibles au code dégueu feraient mieux de ne pas regarder ^-^ll
{* * Affichage du formulaire d'ajout d'une réception. *} <div class="panel"> <!-- FORMULAIRE A REMPLIR --> <div class="form_formulaire_reception"> <form name="reception" method="post" action=""> <!-- les champs du formulaire --> </form> <td><a class="deleteRow"></a></td> <tfoot> <tr> <td colspan="12" style="text-align: left;"> <input type="button" class="btn btn-lg btn-block " id="addrow" value="Ajouter un ingrédient" /> </td> </tr> </tfoot> </div> <p><p> <input type="submit" class="btn btn-lg btn-block" style="background-color: #4CAF50;color: white;" name="validerAjoutReception" value="VALIDER"/> </form> </div> <script type="text/javascript"> //JS qui génère des lignes supplémentaires pour ajouter des ingrédients $(document).ready(function () { var counter = 0; // <= LA VARIABLE EN QUESTION $("#addrow").on("click", function () { var newRow = $("<tr>"); var cols = ""; //Select ingrédients let ingredientSelTd = document.createElement("td"); let ingredientSel = document.getElementById("id_ingredient_select"); let newIngredientSel = ingredientSel.cloneNode(true); newIngredientSel.id = "id_ingredient_select" + counter; newIngredientSel.name = "id_ingredient_select" + counter; let newIngredientSelTd = document.createElement("td"); newIngredientSelTd.append(newIngredientSel); //Select unité de mesure let uniteSel = document.getElementById("id_unite_select"); let newUniteSel = uniteSel.cloneNode(true); newUniteSel.id = "id_unite_select" + counter; newUniteSel.name = "id_unite_select" + counter; let newUniteSelTd = document.createElement("td"); newUniteSelTd.append(newUniteSel); cols += '<td><input type="text" class="form-control" pattern="[A-Za-z0-9/^[^<>;=#]*$/u] placeholder="N° de lot fournisseur" id="num_lot_fournisseur' + counter + '" name="num_lot_fournisseur' + counter + '"/></td>'; cols += '<td><input type="text" class="form-control" pattern="[A-Za-z0-9/^[^<>;=#]*$/u] placeholder="N° de lot" id="num_lot_reception' + counter + '" name="num_lot_reception' + counter + '"/></td>'; cols += '<td><input type="date" class="form-control" placeholder="DLC/DDM fournisseur" id="ddm_fournisseur_reception' + counter + '" name="ddm_fournisseur_reception' + counter + '"/></td>'; cols += '<td><input type="date" class="form-control" placeholder="DLC/DDM" id="ddm_reception' + counter + '" name="ddm_reception' + counter + '"/></td>'; cols += '<td style="text-align: center;"><input type="checkbox" value="1" onclick="if (this.checked) this.value=1; else this.value=0;" class="form-check-input" id="quantite_conforme' + counter + '" name="quantite_conforme' + counter + '" checked/></td>'; cols += '<td style="text-align: center;"><input type="checkbox" value="1" onclick="if (this.checked) this.value=1; else this.value=0;" class="form-check-input" id="integrite_reception' + counter + '" name="integrite_reception' + counter + '" checked/></td>'; cols += '<td><input type="text" class="form-control" placeholder="Quantité reçue" id="quantite_reception' + counter + '" name="quantite_reception' + counter + '"/></td>'; // Bouton de suppression let deleteBtn = document.createElement("input"); deleteBtn.setAttribute("type", "button"); deleteBtn.setAttribute("class", "ibtnDel btn btn-md btn-danger"); deleteBtn.setAttribute("value", "Supprimer"); let deleteBtnTd = document.createElement("td"); deleteBtnTd.append(deleteBtn); // Appends newRow.append(newIngredientSelTd); newRow.append(cols); newRow.append(newUniteSelTd); newRow.append(deleteBtnTd); $("table.order-list").append(newRow); counter++; }); $("table.order-list").on("click", ".ibtnDel", function (event) { $(this).closest("tr").remove(); //counter -= 1; }); }); </script> </div>
J'ai vu qu'on pouvais faire le chemin inverse avec addJsDef donc je me dis qu'il existe surement quelque chose pour faire ce que j'essaie de faire.
Merci à ceux qui tenteront de m'aider 😃