Jump to content

Edit History

Allyta

Allyta

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é :1.thumb.JPG.bcd93cb12bb1fabd11d7fd8a519fe9fd.JPG
 

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 😃

Allyta

Allyta

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é :1.thumb.JPG.bcd93cb12bb1fabd11d7fd8a519fe9fd.JPG
 

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 😃

×
×
  • Create New...