Afficher les villes suivant le codepostal dans un dropdownlist

Contenu du snippet

Cette source utilise un webservice qui permet de donner les villes en fonctions du code postal, ce code est pas entierement finalisé, il reste la gestion des erreurs.
Ce code ne marche pas sous firefox, j'ai testé que sous IE et ca marche.
Je vais implementer ce code pour faire un controle asp.net donc je ne pense pas que le coté javascript va évoluer, je pense gerer les differents navigateur via asp donc si vous avez une astuce pour faire fonctionner le code sous d'autre navigateurs n'hesitez pas

je remercie agerodol qui m'a montré comment faire fonctionner un webservice :)

Source / Exemple :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>CPJS</title>
<script language="javascript">

function ChercherVille(CodePostal){
  
  Form1.CP.options[0].text = "Veuillez patienter"
  document.getElementById("resultat").innerText = "";
  var xmlhttp
  if ( typeof XMLHttpRequest == "object" ) {
    xmlhttp = new XMLHttpRequest();
  }
  if ( typeof ActiveXObject == "object" || typeof ActiveXObject == "function") {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  }

  xmlhttp.open("POST", "http://www.e-naxos.com/scripts/enwscp.dll/soap/IODCODESPOSTAUX",true);
  xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4) {
      document.getElementById("resultat").innerHTML += xmlhttp.responseText;
      var Result = document.getElementById("resultat").innerText;
      var parties = Result.split("|");
      Form1.CP.length = 0;
      for (i in parties){
        var o=new Option(parties[i].split("=")[1],parties[i].split("=")[1]);
        Form1.CP.add(o,-1);
      }
    }
  }

  xmlhttp.setRequestHeader("MessageType", "CALL")
  xmlhttp.setRequestHeader("Content-Type", "text/xml")

  var miSoap='<?xml version="1.0" encoding="UTF-8"?> \n' +
  '<soap:Envelope' +
  '   xmlns:n="urn:ODCODESPOSTAUXIntf-IODCODESPOSTAUX"' +
  '   xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"' +
  '   xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"' +
  '   xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> \n' +
  '   <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> \n' +                
  '      <n:GetTownForZip> \n' +
  '         <ZipCode xsi:type="xs:string">' + CodePostal + '</ZipCode> \n' +
  '         <Separator xsi:type="xs:string">|</Separator> \n' +
  '      </n:GetTownForZip> \n' +
  '   </soap:Body> \n' +
  '</soap:Envelope>'

    xmlhttp.send(miSoap);

}
    </script>
</head>
<body >
<form name="Form1" method="post" action="CPJS.aspx" id="Form1">
  <input name="CPVille" type="text" onChange="ChercherVille(CPVille.value)">
  <select name="CP" >
    <option value="0">Selectionner votre commune</option>
  </select>
  <div id="resultat" style="visibility:hidden"/>
</form>
</body>
</html>

Conclusion :


j'ai un petit problème: qd on met un autre CP ca ajoute les villes à la liste, j'ai pas reussi à trouver comment enlever les anciens elements. Si vous avez une idée la dessus ...
Ce problème a été resolu.

Hesiter pas à me dire ce que vous pensez de la source et à me mettre une petite note :)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.