01/03/2011, 19:17:13
Je laisse les autres t'aider pour le selfregistration.
Voici les codes que j'ai utilisé pour un formulaire maison afin d'afficher les villes correspondantes à un code postal via ajax. Il faudra l'adapter car il était fait pour les codes belges (qui ont plusieurs villes pour le même cp et n'ont que 4 chiffres).
Voici les codes que j'ai utilisé pour un formulaire maison afin d'afficher les villes correspondantes à un code postal via ajax. Il faudra l'adapter car il était fait pour les codes belges (qui ont plusieurs villes pour le même cp et n'ont que 4 chiffres).
Code :
/* formulaire html */
<p class="required short-label p-court">
<label class="labels">Code postal</label>
<input class="mini" type="text" name="codePostalNumero" id="cpIns" size="" maxlength="4" {literal}onkeyup="setCpInfo(this)"{/literal} />
</p>
<p class="required short-label p-court">
<label for="localite" class="labels">Localité</label>
<select class="court" name="localite" id="localite" ><option>Entrez d'abord votre cp </option></select>
/p>
/* localite.php */
/* dans le même dossier que le cp.js */
<?php
if(isset($_GET['codePostalNumero'])&&!empty($_GET['codePostalNumero']))
{
$codePostalNumero=$_GET['codePostalNumero'];
include('/ton_path/db.inc.php');
$sql = "SELECT localiteNom FROM cp_code WHERE codePostalNumero ='$codePostalNumero'";
$result=mysql_query($sql);
$arr=array();
while($row=mysql_fetch_array($result))
{
array_push($arr,str_replace('+',' ',urlencode($row['localiteNom'])));
}
echo implode('|',$arr);
}
?>
/* cp.js */
/* à appeler dans les méta de la page du formulaire. */
function setCpInfo(input){
if (input == undefined)
input = '';
if (window.XMLHttpRequest)
xhr_object = new XMLHttpRequest();
else
if (window.ActiveXObject)
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return (false);
xhr_object.open("GET", "localite?codePostalNumero=" + input.value, false);
xhr_object.send(null);
if (xhr_object.readyState == 4) {
document.getElementById("localite").options.length = 0;
arRep = xhr_object.responseText.split('|');
for (var cpt = 0; cpt < arRep.length; ++cpt) {
document.getElementById("localite").options[cpt] = new Option(unescape(arRep[cpt]), unescape(arRep[cpt]));
}
}
else
alert("erreur");
}
/* table */
id_cp_code num_cp_code commune_cp_code
1 9420 Aaigem