JFItescia Posted May 7, 2015 Share Posted May 7, 2015 Bonjour, J'ai ajouté des champs à un formulaire et j'ai modifié le modèle en ajoutant la déclarations de variables et en ajoutant à la méthode add du modèle. je précise que ces variables sont des int et qu'elles ne subissent aucun traitement dans le formulaire. Mon but est juste de les stocké dans ma base de données. Mes variables s’appellent mensuration_poitrine, mensuration_taille, mensuration_bassin Mais pour simplifier, je vais jsute indiquer mensuration car ces 3 variables subissent le même traitement. Pour chaque variable, voici le code que j'ai ajouté : - Dans la déclaration de variablepublic $mensuration; - Dans le tableau de définition 'mensuration' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'copy_post' => false), - Dans la fonction add($autodate = true, $null_values = true) $this->mensuration = mensuration; Voyez-vous si il me manque un morceau de code, une notion que je n'ai pas comprise. Voici les erreurs que j'ai Merci d'avance. Link to comment Share on other sites More sharing options...
Eolia Posted May 7, 2015 Share Posted May 7, 2015 $this->mensuration = $mensuration; serait mieux que $this->mensuration = mensuration; Autrement PHP pense que mensuration est une constante, hors c'est une variable Link to comment Share on other sites More sharing options...
JFItescia Posted May 7, 2015 Author Share Posted May 7, 2015 (edited) Merci pour ta réponse Eolia ! J'ai fais les modifications et je n'ai plus d'erreur. Par contre, peu importe la valeur que je met dans mes champs mensuration, la valeur 0 est enregistré dans la base de données. Par exemple, voici le début de la fonction add public function add($autodate = true, $null_values = true) { $this->id_shop = ($this->id_shop) ? $this->id_shop : Context::getContext()->shop->id; $this->id_shop_group = ($this->id_shop_group) ? $this->id_shop_group : Context::getContext()->shop->id_shop_group; $this->id_lang = ($this->id_lang) ? $this->id_lang : Context::getContext()->language->id; $this->birthday = (empty($this->years) ? $this->birthday : (int)$this->years.'-'.(int)$this->months.'-'.(int)$this->days); /*[...]*/ } Or, je n'ai pas l'impression d'avoir besoin d'utiliser un opérateur ternaire ou encore un getContext() pour juste faire attribuer la valeur d'un champs texte à une variable (Je ne sais pas si c'est très clair). Une affectation (celle modifié par Eolia) toute simple comme ci-dessous, me paraissais suffisante : $this->mensuration = $mensuration; Mon champs texte est déclaré comme ceci : <div> <label for="mensuration">{l s='Mensuration'}</label> <input type="text" class="is_required validate form-control" style="width:200px;" /> </div> Merci d'avance Edited May 7, 2015 by JFItescia (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted May 7, 2015 Share Posted May 7, 2015 Ben il manque des choses... Votre input doit avoir un nom, donc <div> <label for="mensuration">{l s='Mensuration'}</label> <input type="text" name="mensuration" id="mensuration" class="is_required validate form-control" style="width:200px;" /> </div> De plus, si vous utilisez un label for id, votre input doit avoir un id, donc je l'ai rajouté également^^ ensuite en début de traitement, il faut récupérer la valeur entrée grâce à cet identifiant(name) $mensuration = Tools::getValue('mensuration'); Ca devrait aller mieux 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