ncandelier Posted April 13, 2011 Share Posted April 13, 2011 Bonjour à tous et toutes,J'ai personnalisé mon formulaire de contact avec des champs supplémentaires.Parmis ces champs, j'ai deux champs qui appellent une liste déroulante : Civilité et Département.Ces champs sont obligatoires.Seulement voila, la premiere valeur de chacun de ces champs est "-- Choisir --"Le système considère donc "-- Choisir--" comme une selection et passe donc au travers la vérification obligatoire.Ma question est la suivante : Savez vous comment exclure cette premiere valeur "choisir" de la vérification afin que l'utilisateur soit obligé de selectionner une autre valeur de la liste. (Mademoiselle, Madame, Monsieur) ?Merci.Mon contact form: {l s='Civilite *'} -- Choisir -- Monsieur Madame Mademoiselle Mon code php : <?php $useSSL = true; include(dirname(__FILE__).'/config/config.inc.php'); include(dirname(__FILE__).'/header.php'); $errors = array(); $smarty->assign('contacts', Contact::getContacts(intval($cookie->id_lang))); if (Tools::isSubmit('submitMessage')) { if (!($from = Tools::getValue('from')) OR !Validate::isEmail($from)) $errors[] = Tools::displayError('invalid e-mail address'); elseif (!($civilite = nl2br2($civilite))) $errors[] = Tools::displayError('Merci de renseigner votre civilité'); elseif (!($nom = nl2br2($nom))) $errors[] = Tools::displayError('Merci de renseigner votre nom'); elseif (!($prenom = nl2br2($prenom))) $errors[] = Tools::displayError('Merci de renseigner votre prénom'); elseif (!($telephone = nl2br2($telephone))) $errors[] = Tools::displayError('Merci de renseigner votre numéro de téléphone'); elseif (!($ville = nl2br2($ville))) $errors[] = Tools::displayError('Merci de renseigner votre ville'); elseif (!($dep1 = nl2br2($dep1))) $errors[] = Tools::displayError('Merci de renseigner votre département'); elseif (!($id_contact = intval(Tools::getValue('id_contact'))) OR !(Validate::isLoadedObject($contact = new Contact(intval($id_contact), intval($cookie->id_lang))))) $errors[] = Tools::displayError('please select a contact in the list'); else { if (intval($cookie->id_customer)) $customer = new Customer(intval($cookie->id_customer)); if (Mail::Send(intval($cookie->id_lang), 'contact', 'Message from contact form', array('{email}' => $from, '{civilite}' => $civilite, '{nom}' => $nom, '{prenom}' => $prenom, '{societe}' => $societe, '{ville}' => $ville, '{dep1}' => $dep1, '{distrib}' => $distrib, '{telephone}' => $telephone, '{message}' => stripslashes($message)), $contact->email, $contact->name, $from, (intval($cookie->id_customer) ? $customer->firstname.' '.$customer->lastname : $from))) $smarty->assign('confirmation', 1); else $errors[] = Tools::displayError('an error occurred while sending message'); } } $email = Tools::safeOutput(Tools::getValue('from', ((isset($cookie) AND isset($cookie->email) AND Validate::isEmail($cookie->email)) ? $cookie->email : ''))); $smarty->assign(array( 'errors' => $errors, 'email' => $email, 'civilite' => Tools::getValue('civilite'), 'nom' => Tools::getValue('nom'), 'prenom' => Tools::getValue('prenom'), 'societe' => Tools::getValue('societe'), 'ville' => Tools::getValue('ville'), 'dep1' => Tools::getValue('dep1'), 'distrib' => Tools::getValue('distrib'), 'telephone' => Tools::getValue('telephone') )); $smarty->display(_PS_THEME_DIR_.'contact-form.tpl'); include(dirname(__FILE__).'/footer.php'); ?> Link to comment Share on other sites More sharing options...
sophie30 Posted April 14, 2011 Share Posted April 14, 2011 Bonjour,Je sais pas si c'est comme ça qu'il faut faire mais comme j'ai le nez dans la modification du formulaire depuis hier, je pense qu'il faudrait peut-être poser une règle via les expressions régulières dans le fichier validate.php (dans le dossier classes).Une fois la règle définie vous l'appliquez dans le fichier customer.php, à la suite des autres. ça donne quelque chose comme ça: 'civilite' => 'isCivilite' si la fonction qui applique la règle s'apelle 'isCivilite'...J'ai trouvé un super outil pour tester les expressiosn régulières : http://www.annuaire-info.com/outil-referencement/expression-reguliere/De mon côté j'ai du mal à insérer la valeur de la liste déroulante dans ma BDD. Y a t'il une manip spéciale pour ce type de champ?? 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