templates/default/inscription.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block title %}Hello DefaultController!{% endblock %}
  3. {% block body %}
  4. <style type="text/css">
  5.     .txt-inscription,
  6.     label {
  7.         color: #adb9ca;
  8.     }
  9.     .select2-container--default .select2-selection--single {
  10.   background-color: #fff;
  11.   border: none !important;
  12.   border-radius: 4px;
  13. }
  14. .select2-container--default .select2-selection--single .select2-selection__arrow {
  15.   height: 26px;
  16.   position: absolute;
  17.   top: 1px;
  18.   right: 1px;
  19.   width: 20px;
  20.   display: none;
  21. }
  22.     button {
  23.         background-color: #adb9ca !important;
  24.         color: white !important;
  25.     }
  26.     button:hover {
  27.         background-color: #0073CD !important;
  28.         color: white !important;
  29.     }
  30.     .btn-logo {
  31.         width: 0.1px;
  32.         opacity: 0;
  33.     }
  34.     .style-choix-logo {
  35.         background-color: #adb9ca;
  36.         color: white;
  37.         padding: 0.5em;
  38.         border-radius: 5px;
  39.     }
  40.     
  41. #part form
  42.     {
  43.           display: block;
  44.   border: solid #B0DB82;
  45.   border-radius: 10px;
  46.   padding: 15px;
  47.   margin-bottom: 10px;
  48.   margin-top: 10px;
  49.     }
  50.     #part label{
  51.         color:#B0DB82;
  52.     }
  53.      #part button:hover {
  54.   background-color: #00B050 !important;
  55.   color: white !important;
  56. }
  57.     #part button {
  58.   background-color: #B0DB82 !important;
  59.   color: white !important;
  60. }
  61.     #pro form
  62.     {
  63.           display: block;
  64.   border: solid #ADB9CA ;
  65.   border-radius: 10px;
  66.   padding: 15px;
  67.   margin-bottom: 10px;
  68.   margin-top: 10px;
  69.     }
  70.       #pro label{
  71.         color:#ADB9CA;
  72.     }
  73. </style>
  74. <div class="container mx-auto" style="margin : 150px 0 ;" id="{{ app.request.get('type')}}" >
  75.         <a style="font-size:24px;">Je m'inscris en tant que {% if app.request.get('type') == 'pro' %} professionnel {% else %} particulier {% endif %} :</a>
  76.    {{form_start(form)}}
  77.         
  78. {% if app.request.get('erreur') %}
  79.         <div class="alert alert-danger"><b>Erreur :</b> un compte existe déjà cette adresse e-mail !</div>
  80.         {% endif %}
  81.         {% if app.request.get('type') == 'pro' %}
  82.         <div class="form-row">
  83.             <div class="form-group col-md-6">
  84.                 <label for="raisonSociale">Raison sociale</label>
  85.                 {{ form_row(form.raisonSociale,{'attr': {'class': 'form-control','placeholder': 'Entrer votre raison sociale'}}) }}
  86.             </div>
  87.             <div class="form-group col-md-6">
  88.                 <label for="siret">SIRET</label>
  89.                 {{ form_row(form.siret,{'attr': {'class': 'form-control','placeholder': 'Entrer votre numéro de siret'}}) }}
  90.             </div>
  91.         </div>
  92.         <div class="form-group">
  93.             <label for="tva">Nº TVA </label>
  94.            {{ form_row(form.tva,{'attr': {'class': 'form-control','placeholder': 'Entrer votre numéro de tva'}}) }}
  95.         </div>
  96.         <div class="form-group">
  97.             <p class="txt-inscription"> Logo de l'entreprise </p>
  98.            
  99.              {{ form_row(form.logo,{'attr': {'class': 'form-control','placeholder': 'Entrer votre mot de passe'}}) }}
  100.         </div>
  101.         {% endif %}
  102.         <div class="form-group">
  103.             <label for="genre">Civilité</label>
  104.             <select class="form-control" name="genre" id="genre" required>
  105.                 <option selected value="">Choisissez...</option>
  106.                 <option value="M">Homme</option>
  107.                 <option value="Mme">Femme</option>
  108.                 
  109.             </select>
  110.         </div>
  111.         <div class="form-row">
  112.             <div class="form-group col-md-6">
  113.                 <label for="nom">Nom</label>
  114.                   {{ form_row(form.nom,{'attr': {'class': 'form-control','placeholder': 'Entrer votre nom'}}) }}
  115.             </div>
  116.             <div class="form-group col-md-6">
  117.                 <label for="prenom">Prénom</label>
  118.                {{ form_row(form.prenom,{'attr': {'class': 'form-control','placeholder': 'Entrer votre prénom'}}) }}
  119.             </div>
  120.         </div>
  121.         {% if app.request.get('type') == 'pro' %}
  122.         
  123.         {% endif %}
  124.         <div class="form-group">
  125.             <label for="adresse">Adresse</label>
  126.            {{ form_row(form.adresse,{'attr': {'class': 'form-control','placeholder': 'Entrer votre adresse'}}) }}
  127.         </div>
  128.         <div class="form-row">
  129.             <div class="form-group col-md-6">
  130.                 <label for="codePostal">Code postal</label>
  131.                 {{ form_row(form.codePostal,{'attr': {'class': 'form-control','placeholder': 'Entrer votre code postal'}}) }}
  132.             </div>
  133.             <div class="form-group col-md-6">
  134.                 <label for="ville">Ville</label>
  135.                   <select class="input-search js-data-example-ajax" name="ville" style="width:100%" >
  136.                                         
  137.   
  138.                   </select>
  139.             </div>
  140.         </div>
  141.         <div class="form-row">
  142.             <div class="form-group col-md-6">
  143.                 <label for="pays">Pays</label>
  144.                 <select name="pays" class="form-control" name="pays">
  145.                 {% for res in pays %}
  146.                 <option value="{{res.id}}">{{res.libelle}}</option>
  147.                 {% endfor %}
  148.                 </select>
  149.             </div>
  150.             <div class="form-group col-md-6">
  151.                 <label for="telephone">Numéro de téléphone</label>
  152.                 {{ form_row(form.telephone,{'attr': {'class': 'form-control','placeholder': 'Entrer votre numéro de téléphone'}}) }}
  153.             </div>
  154.         </div>
  155.         <div class="form-group">
  156.             <label for="email">Adresse e-mail</label>
  157.             {{ form_row(form.email,{'attr': {'class': 'form-control','placeholder': 'Entrer votre adresse email'}}) }}
  158.         </div>
  159.         <div class="form-group">
  160.             <label for="confirmEmail">Confirmation de l'adresse e-mail</label>
  161.             <input type="email" class="form-control" id="confirmEmail" placeholder="Confirmez votre adresse email">
  162.         </div>
  163.         <div class="form-group">
  164.             <label for="password">Mot de passe</label>
  165.              {{ form_row(form.password,{'attr': {'class': 'form-control','placeholder': 'Entrer votre mot de passe'}}) }}
  166.         </div>
  167.         <div class="form-group">
  168.             <label for="confirmPassword">Confirmation de mot de passe</label>
  169.             <input type="password" class="form-control" id="confirmPassword" placeholder="Confirmez votre mot de passe">
  170.         </div>
  171.         
  172.     
  173.         <div class="row d-flex justify-content-center">
  174.             <button type="submit" class="btn">S'INSCRIRE</button>
  175.         </div>
  176.     </form>
  177. </div>
  178. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.0/jquery.min.js" integrity="sha512-3gJwYpMe3QewGELv8k/BX9vcqhryRdzRMxVfq6ngyWXwo03GFEzjsUm8Q7RZcHPHksttq7/GFoxjCVUjkjvPdw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  179. <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
  180. <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.8/js/select2.min.js" defer></script>
  181. <script>
  182. $(document).ready(function() {
  183.   var data = []; // Variable pour stocker les données JSON
  184.   // Charger les données JSON depuis l'URL
  185.   $.getJSON("https://modixom.fr/villes.json", function(response) {
  186.     data = response.results;
  187.     
  188.     // Ajouter un élément vide pour le placeholder
  189.     data.unshift({ id: "", text: "" });
  190.     // Fonction pour calculer la distance de Levenshtein entre deux chaînes de caractères
  191.     function levenshteinDistance(a, b) {
  192.       if (a.length === 0) return b.length;
  193.       if (b.length === 0) return a.length;
  194.       var matrix = [];
  195.       // Initialise la première ligne et la première colonne de la matrice
  196.       for (var i = 0; i <= b.length; i++) {
  197.         matrix[i] = [i];
  198.       }
  199.       for (var j = 0; j <= a.length; j++) {
  200.         matrix[0][j] = j;
  201.       }
  202.       // Calculer la distance de Levenshtein
  203.       for (var i = 1; i <= b.length; i++) {
  204.         for (var j = 1; j <= a.length; j++) {
  205.           if (b.charAt(i - 1) === a.charAt(j - 1)) {
  206.             matrix[i][j] = matrix[i - 1][j - 1];
  207.           } else {
  208.             matrix[i][j] = Math.min(
  209.               matrix[i - 1][j - 1] + 1, // Substitution
  210.               matrix[i][j - 1] + 1, // Insertion
  211.               matrix[i - 1][j] + 1 // Suppression
  212.             );
  213.           }
  214.         }
  215.       }
  216.       return matrix[b.length][a.length];
  217.     }
  218.     // Initialiser Select2 avec les données chargées
  219.     $('.js-data-example-ajax').select2({
  220.       placeholder: 'Choisir une ville',
  221.       language: {
  222.   // You can find all of the options in the language files provided in the
  223.   // build. They all must be functions that return the string that should be
  224.   // displayed.
  225.   inputTooShort: function () {
  226.     return "Saisir minimum 3 caractères";
  227.   }
  228. },
  229.       
  230.       selectOnClose: false,
  231.       tags: false,
  232.       tokenSeparators: [',', ' '],
  233.       data: data, // Utiliser les données chargées pour Select2
  234.       templateResult: function(result) {
  235.         return result.text;
  236.       },
  237.       dropdownAutoWidth: true, // Ajuster automatiquement la largeur du menu déroulant
  238.       minimumInputLength: 3, // Requiert au moins 1 caractère pour effectuer une recherche
  239.       sorter: function(data) {
  240.         // Obtenir la valeur de recherche
  241.         var term = $('.js-data-example-ajax').val().toLowerCase();
  242.         // Trier les données en fonction de la pertinence
  243.         return data.sort(function(a, b) {
  244.           var distanceA = levenshteinDistance(term, a.text.toLowerCase());
  245.           var distanceB = levenshteinDistance(term, b.text.toLowerCase());
  246.           return distanceA - distanceB;
  247.         });
  248.       }
  249.     });
  250.    var villed = $('#villeSelect').val()
  251.     
  252.   });
  253. });
  254. </script>
  255. {% endblock %}