Jump to content
Jean-jacque

Récupérer les informations d'un formulaire dans lequel il y a un foreach

Recommended Posts

Posted (edited)

Bonsoir,

Je viens vers vous afin que, je l'espère, quelqu'un puisse m'aider sur un point.
Je suis en train de créer un module, dans la configuration de celui-ci, il y a une liste qui va reprendre les magasins actifs et les employés.

Je récupère donc chaque magasin et pour chaque magasin j'ai mis en place un select afin de faciliter le choix pour l'administrateur.

Le problème que j'ai, actuellement si je tente de récupérer les informations (via un dump du POST par exemple), j'arrive uniquement à récupérer la dernière ligne.

 

<form role="form" action="#" method="POST" id="parameter_form" name="parameter_form">
    <div class="table-responsive-row clearfix">
        <table id="table-employee" class="table employee">
            <thead>
                <tr class="nodrag nodrop">
                    <th class="">
                        <span class="title_box active">
                            {l s='#' mod='employeeshop'}
                        </span>
                    </th>
                    <th class="">
                        <span class="title_box">
                            {l s='shop' mod='employeeshop'}
                        </span>
                    </th>
                    <th class="">
                        <span class="title_box">
                            {l s='employee' mod='employeeshop'}
                        </span>
                    </th>
                </tr>
                {foreach from=$stores item=store}
               
                    <tr>
                        <label class="control-label col-lg-3" for="SHOP">
                            <td id="SHOP">{$store.id_store}</td>
                        </label>
                        <td>{$store.name}</td>
                        <td>
                            <select id="employee_select" name="employee_select">
                                <option selected="selected">{l s='Select an employee' mod='employeeshop'}</option>
                                {foreach from=$employees item=employee}
                                <option value="{$store.id_store}-{$employee.id_employee}">{$employee.lastname} {$employee.firstname}</option>
                                {/foreach}
                            </select>
                        </td>
                    </tr>
               
                {/foreach}
            </thead>
        </table>
    </div>
    <div class="panel-footer">
        <div class="btn-group pull-right">
            <button name="submitParameters" id="submitParameters" type="submit" class="btn btn-default">
                <i class="process-icon-save"></i>
                {l s='Save' mod='employeeshop'}
            </button>
        </div>
    </div>
</form>

En espérant que vous saurez voir cela et m'éclairer de vos lumières.

Merci d'avance ! 

Edited by Jean-jacque (see edit history)

Share this post


Link to post
Share on other sites

Bonjour,

j'ai rien compris mais déjà on va rappeler une règle de base du développement html ... un id est unqiue donc mettre des id dans un foreach est une aberration à proscrire de toute urgence.

après les donénes tranmsies sont basées sur le name des input donc on va bosser dessus et pour simplement récupérer l'employé d'un store on doit le faire facielment en définissant le name su select.

{foreach from=$stores item=store}

<tr>
  <td>{$store.id_store}</td>
  <td>{$store.name}</td>
  <td>
    <select name="employee_select[{$store.id_store}]">
      <option selected="selected">{l s='Select an employee' mod='employeeshop'}</option>
      {foreach from=$employees item=employee}
      <option value="{$employee.id_employee}">{$employee.lastname} {$employee.firstname}</option>
      {/foreach}
    </select>
  </td>
</tr>

{/foreach}

ainsi la récupération est plus simple.

Share this post


Link to post
Share on other sites

Bonjour @Mediacom87,

Tout d'abord merci pour votre réponse. Et désolé de l'explication pas très claire.

 

Effectivement, un énorme Mea Culpa pour les id, à force de vérifier des choses et de faire des tests, je suis arrivé à faire des erreurs aussi grossières...

Un énorme merci, car effectivement en voyant votre réponse,  la logique est totalement compréhensible (le name du select avec l'id_store), et la récupération du Post peut se faire correctement.

 

Désolé encore pour les fautes grossières qui ont dû faire saigner des yeux dès le matin 😂

Share this post


Link to post
Share on other sites

pas de soucis, on est là aussi pour apprendre, mais il est vrai que c'est difficile de savoir le niveau de compréhension possible lorsque l'on modifie un code d'autrui.

J’espère avoir pu répondre à votre besoin et vous avoir aidé à acquérir une nouvelle réflexion sur vos prochains développements.

Share this post


Link to post
Share on other sites

Non seulement les id, mais les name des champs doivent être unique si tu veux obtenir leurs valeurs dans le post

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More