Jump to content

[Resolu] Problème Fonction Liste Déroulante


Recommended Posts

Bonne année !  :D

 

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 by AlexanderOs (see edit history)
Link to comment
Share on other sites

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

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

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...