AlexanderOs Posted January 2, 2016 Share Posted January 2, 2016 (edited) Bonne année ! J'ai un souci pour lister une table dans une balise sélect je pence que cela ne doit pas être la bonne méthode, si quelqu'un a le temps de regarder cela . Voici la fonction que j'ai pour l'instant public function maFonction() { $sql = 'SELECT * FROM '._DB_PREFIX_.'order_return_state_lang'; $data = Db::getInstance()->execute($sql); $display = ' <div id="returntab" class="tab-pane"> <form method="post" action=""> <select>'; $display .='<option value="'.$data['id_order_return_state'].'">'.$data['name'].'</option>'; $display .= ' </select> <input type="submit" value="Valider" class="btn btn-primary" name="submitReturn" /> </form> </div> '; return $display; } Edited January 2, 2016 by AlexanderOs (see edit history) Link to comment Share on other sites More sharing options...
Mediacom87 Posted January 2, 2016 Share Posted January 2, 2016 Bonjour, il faut faire une boucle des option sur data. http://php.net/manual/fr/control-structures.foreach.php Link to comment Share on other sites More sharing options...
AlexanderOs Posted January 2, 2016 Author Share Posted January 2, 2016 J'avais déjà essayer avec foreach comme ceci public function maFonction() { $sql = 'SELECT * FROM '._DB_PREFIX_.'order_return_state_lang'; $sqlData = Db::getInstance()->execute($sql); $display = ' <div id="returntab" class="tab-pane"> <form method="post" action=""> <select>'; foreach ($sqlData as $data) $display .='<option value="'.$data['id_order_return_state'].'">'.$data['name'].'</option>'; $display .= ' </select> <input type="submit" value="Valider" class="btn btn-primary" name="submitReturn" /> </form> </div> '; return $display; } Mais cela ne fonctionne pas. Link to comment Share on other sites More sharing options...
erouvier29 Posted January 2, 2016 Share Posted January 2, 2016 Bonjour, Il y a au moins 3 erreurs dans votre code. 1/ Si vous êtes en multi-langue les états vont être proposés une fois dans chaque langue. Modifiez la requête par: $sql = 'SELECT * FROM '._DB_PREFIX_.'order_return_state_lang WHERE id_lang = '.pSQL(Context::getContext()->language->id); 2/ Vous ne récupérez pas les résultats de la requête, mais seulement le statut d'exécution. Modifiez l'appel par: $sqlData = Db::getInstance()->executeS($sql); 3/ L'état sélectionné ne sera pas posté. Nommez votre select (par exemple): <select name="returnState"> Cordialement Link to comment Share on other sites More sharing options...
AlexanderOs Posted January 2, 2016 Author Share Posted January 2, 2016 (edited) Merci à vous deux problème résolu !!! Edited January 2, 2016 by AlexanderOs (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now