Bonjour,
J'essaie de faire un formulaire comprenant un select qui doit afficher les fournisseurs que j'ai dans ma BDD en guise de possibilité :
J'ai du mal à faire le lien entre mon controller et ma vue. Je débute tout juste avec la technologie Smarty.
Mon controller :
/** * Affichage du formulaire d'ajout / création de l'objet * @return string * @throws SmartyException */ public function renderForm() { return $this->module->display(_PS_MODULE_DIR_.'gestionProduction', 'views/templates/admin/ajoutReception.tpl'); return parent::renderForm(); $sql = 'SELECT id, nom_fournisseur FROM ' . _DB_PREFIX_ . 'GP_' . 'fournisseur'; $result = $mysqli->query($sql); while ($row = $result->fetch_array(MYSQLI_ASSOC)){ // set array index of fournisseur as id $fournisseurs[$row['id']] = $row['nom_fournisseur']; // get id of selected fournisseur if ($row['selected'] == true) $selected = $row['id']; else{} } $smarty = new Smarty; $smarty->assign('fournisseurs', $fournisseurs); $smarty->display('ajoutReception.tpl'); }
et mon tpl :
{* * 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=""> <div class="form-group col"> <label for="fournisseurDataList">Nom du fournisseur :</label> <select class="form-control" list="selectOptions" id="fournisseurSelect" required> <option selected>Rechercher...</option> { for item in $fournisseurs } <option value="{{ item }}"></option> { endfor } </select> </div> <div class="form-group col"> <label for="transporteurDataList">Nom du transporteur :</label> <input class="form-control" list="datalistOptions" id="transporteurDataList" placeholder="Rechercher..." > <datalist id="datalistOptions"> <option>...</option> </datalist> </div> <div class="form-group col"> <label for="date_reception">Date de réception :</label> <input type="date" name="date_reception" required/> </div> <p><p> <div class="row"> <table id="myTable" class="table order-list"> <thead> </thead> <tbody> <tr> <td scope="table order-list"> <label for="ingredientSelect">Désignation</label> </td> <td> <label for="num_lot_fournisseur">N° de lot fournisseur</label> </td> <td> <label for="num_lot_reception">N° de lot</label> </td> <td> <label for="ddm_fournisseur_reception">DLC/DDM fournisseur</label> </td> <td> <label for="ddm_reception">DLC/DDM</label> </td> <td> <label for="quantite_conforme">Quantité conforme</label> </td> <td> <label for="integrite_reception">Intégrité</label> </td> <td> <label for="quantite_reception">Quantité reçue</label> </td> </tr> <tr> <th scope="table order-list"> <select class="form-control" list="selectOptions" id="ingredientSelect" required> <option selected>Rechercher...</option> <option value="1">...</option> </select> </th> <td> <input type="text" name="num_lot_fournisseur" placeholder="N° de lot fournisseur" class="form-control" pattern="[A-Za-z0-9]+" required/> </td> <td> <input type="text" name="num_lot_reception" placeholder="N° de lot" class="form-control" pattern="[A-Za-z0-9]+" required/> </td> <td> <input type="date" name="ddm_fournisseur_reception" placeholder="DLC/DDM fournisseur" class="form-control" required/> </td> <td> <input type="date" name="ddm_reception" placeholder="DLC/DDM" class="form-control" required/> </td> <td style="text-align: center;"> <input class="form-check-input" type="checkbox" value="" name="quantite_conforme" required> </td> <td style="text-align: center;"> <input class="form-check-input" type="checkbox" value="" name="integrite_reception" required> </td> <td> <input type="text" name="quantite_reception" placeholder="Quantité reçue" class="form-control" required/> </td> <td><a class="deleteRow"></a></td> </tr> </tbody> <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> </table> <div class="form-group col"> <label for="visa">Opérateur : </label> <input type="text" name="visa" required/> </div> </div> <p><p> <input type="submit" class="btn btn-lg btn-block" style="background-color: #4CAF50;color: white;" name="valider" 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; $("#addrow").on("click", function () { var newRow = $("<tr>"); var cols = ""; cols += '<td><select class="form-control" list="selectOptions" name="id_ingredient' + counter + '"/></select></td>'; cols += '<td><input type="text" class="form-control" placeholder="N° de lot fournisseur" name="num_lot_fournisseur' + counter + '"/></td>'; cols += '<td><input type="text" class="form-control" placeholder="N° de lot" name="num_lot_reception' + counter + '"/></td>'; cols += '<td><input type="date" class="form-control" placeholder="DLC/DDM fournisseur" name="ddm_fournisseur_reception' + counter + '"/></td>'; cols += '<td><input type="date" class="form-control" placeholder="DLC/DDM" name="ddm_reception' + counter + '"/></td>'; cols += '<td style="text-align: center;"><input type="checkbox" class="form-check-input" name="quantite_conforme' + counter + '"/></td>'; cols += '<td style="text-align: center;"><input type="checkbox" class="form-check-input" name="integrite_reception' + counter + '"/></td>'; cols += '<td><input type="text" class="form-control" placeholder="Quantité reçue" name="quantite_reception' + counter + '"/></td>'; cols += '<td><input type="button" class="ibtnDel btn btn-md btn-danger " value="Supprimer"></td>'; newRow.append(cols); $("table.order-list").append(newRow); counter++; }); $("table.order-list").on("click", ".ibtnDel", function (event) { $(this).closest("tr").remove(); counter -= 1 }); }); </script> </div>
Si quelqu'un veut bien m'aiguiller sur la façon de procéder, ce serait gentil 😃
.png.022b5452a8f28f552bc9430097a16da2.png)