Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Module SelfRegistration
#2

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).
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
Répondre


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)