Comment faire !!!

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Comment faire !!!

    Bonjour à tous !

    J'ai trouvé un petit script fort sympathique qui me permet de préremplir les champs de formulaire automatiquement en fonction du code postal ou de la ville.
    J'ai donc inséré ce script sur une simple page html et il fonctionne à merveille.
    Mais je n'arrive pas à l'intégrer dans un article de joomla. quelqun serait-il me dire comment faire ?

    Voici le script dans une page html :

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Document sans nom</title>
    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
    <link rel="stylesheet" href="https://code.jquery.com/ui/1.7.3/themes/base/jquery-ui.css">
    </head>

    <body>
    <form id="form1" name="form1" method="post">
    <input name="cp" id="cp" type="text" placeholder="CP">
    <input name="ville" id="ville" type="text" placeholder="Ville">
    <input name="adresse" id="adresse" type="text" placeholder="Adresse">
    <script>
    $("#cp").autocomplete({
    source: function (request, response) {
    $.ajax({
    url: "https://api-adresse.data.gouv.fr/search/?postcode="+$("input[name='cp']").val(),
    data: { q: request.term },
    dataType: "json",
    success: function (data) {
    var postcodes = [];
    response($.map(data.features, function (item) {
    // Ici on est obligé d'ajouter les CP dans un array pour ne pas avoir plusieurs fois le même
    if ($.inArray(item.properties.postcode, postcodes) == -1) {
    postcodes.push(item.properties.postcode);
    return { label: item.properties.postcode + " - " + item.properties.city,
    city: item.properties.city,
    value: item.properties.postcode
    };
    }
    }));
    }
    });
    },
    // On remplit aussi la ville
    select: function(event, ui) {
    $('#ville').val(ui.item.city);
    }
    });
    $("#ville").autocomplete({
    source: function (request, response) {
    $.ajax({
    url: "https://api-adresse.data.gouv.fr/search/?city="+$("input[name='ville']").val(),
    data: { q: request.term },
    dataType: "json",
    success: function (data) {
    var cities = [];
    response($.map(data.features, function (item) {
    // Ici on est obligé d'ajouter les villes dans un array pour ne pas avoir plusieurs fois la même
    if ($.inArray(item.properties.postcode, cities) == -1) {
    cities.push(item.properties.postcode);
    return { label: item.properties.postcode + " - " + item.properties.city,
    postcode: item.properties.postcode,
    value: item.properties.city
    };
    }
    }));
    }
    });
    },
    // On remplit aussi le CP
    select: function(event, ui) {
    $('#cp').val(ui.item.postcode);
    }
    });
    $("#adresse").autocomplete({
    source: function (request, response) {
    $.ajax({
    url: "https://api-adresse.data.gouv.fr/search/?postcode="+$("input[name='cp']").val(),
    data: { q: request.term },
    dataType: "json",
    success: function (data) {
    response($.map(data.features, function (item) {
    return { label: item.properties.name, value: item.properties.name};
    }));
    }
    });
    }
    });
    </script>
    </form>

    </body>


    Merci de votre aide !
    Dernière édition par mediax à 12/01/2022, 10h00

  • #2
    Bonjour,

    J'ai intégré le code directement dans un article de cette manière et cela fonctionne avec cette formule:

    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
    <link rel="stylesheet" href="https://code.jquery.com/ui/1.7.3/themes/base/jquery-ui.css">

    <form id="form1" name="form1" method="post">
    <input name="cp" id="cp" type="text" placeholder="CP">
    <input name="ville" id="ville" type="text" placeholder="Ville">
    <input name="adresse" id="adresse" type="text" placeholder="Adresse">
    <script>
    jQuery(document).ready(function($){
    $("#cp").autocomplete({
    source: function (request, response) {
    $.ajax({
    url: "https://api-adresse.data.gouv.fr/search/?postcode="+$("input[name='cp']").val(),
    data: { q: request.term },
    dataType: "json",
    success: function (data) {
    var postcodes = [];
    response($.map(data.features, function (item) {
    // Ici on est obligé d'ajouter les CP dans un array pour ne pas avoir plusieurs fois le même
    if ($.inArray(item.properties.postcode, postcodes) == -1) {
    postcodes.push(item.properties.postcode);
    return { label: item.properties.postcode + " - " + item.properties.city,
    city: item.properties.city,
    value: item.properties.postcode
    };
    }
    }));
    }
    });
    },
    // On remplit aussi la ville
    select: function(event, ui) {
    $('#ville').val(ui.item.city);
    }
    });
    $("#ville").autocomplete({
    source: function (request, response) {
    $.ajax({
    url: "https://api-adresse.data.gouv.fr/search/?city="+$("input[name='ville']").val(),
    data: { q: request.term },
    dataType: "json",
    success: function (data) {
    var cities = [];
    response($.map(data.features, function (item) {
    // Ici on est obligé d'ajouter les villes dans un array pour ne pas avoir plusieurs fois la même
    if ($.inArray(item.properties.postcode, cities) == -1) {
    cities.push(item.properties.postcode);
    return { label: item.properties.postcode + " - " + item.properties.city,
    postcode: item.properties.postcode,
    value: item.properties.city
    };
    }
    }));
    }
    });
    },
    // On remplit aussi le CP
    select: function(event, ui) {
    $('#cp').val(ui.item.postcode);
    }
    });
    $("#adresse").autocomplete({
    source: function (request, response) {
    $.ajax({
    url: "https://api-adresse.data.gouv.fr/search/?postcode="+$("input[name='cp']").val(),
    data: { q: request.term },
    dataType: "json",
    success: function (data) {
    response($.map(data.features, function (item) {
    return { label: item.properties.name, value: item.properties.name};
    }));
    }
    });
    }
    });
    })
    </script>
    </form>

    J'ai encadré le javascript par un jQuery(document).ready(function($){...code...})

    Car il me semble que le $ n'est pas pris en compte par Joomla car il est en mode jQuery no conflict.
    C'est à confirmer mais cela marche de cette manière.

    Redis moi si c'est okay.

    Passe une belle journée.
    Dernière édition par MICHEL DEDANS à 12/01/2022, 09h04

    Commentaire


    • #3
      Super !!!

      Merci à toi pour cette réponse claire et précise. Ca fonctionne comme je le voulais !
      J'ai appris une chose de plus aujourd'hui, grâce à toi.
      Encore mille merci !
      MICHEL DEDANS aime ceci.

      Commentaire

      Annonce

      Réduire
      Aucune annonce pour le moment.

      Partenaire de l'association

      Réduire

      Hébergeur Web PlanetHoster
      Travaille ...
      X