osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Code postal + nom de la ville, Générateur automatique du nom de la ville
computer
posté 31 Mar 2009, 01:09
Message #1


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 135
Inscrit : 17-June 08
Lieu : Sur un yaucht
Membre no 22166



Bonjour,

Je souhaiterai générer de manière automatique le nom de la ville lors de la saisie du code postal.
Après avoir fait plusieurs recherches sur ce forum je n'ai rien trouvé. Connaissez vous une contribution? J'ai déjà vu plusieur site tourner sous oscommerce avec cette fonction.

Cordialement,
Pierre

Ce message a été modifié par computer - 5 Apr 2009, 00:08.


--------------------
Version oscommerce : osCommerce 2.2 build 060817.
Contributions installées : Fancier_invoice_6.2, pollbooth_v2.3, StockTaking Cost 0.3, automatic_thumbnail_for_osc3v1.7, batch-print-center-3.13, country-state-selector, CSS_POP_UP_INSTALL, define_mainpage_v1.3.3_MS2_Fr, dob_dropdown_v1.0c, low stock report 2, master passord mpv1.4, Multiple_Products_Manager_2.5c, order_editor_5_0_61, OSC_Expeditor v2.1 by milerwan, osc_pdf_catalog_2.0.5_1, osCAffiliate v2.7, newsletter subscribers, RSS_News_V1.3, TinyMCE_in_osCommerce, Ultimate_SEO_URLs_v2-2.2e, User Tracking with Admin 1.4.2_1, wishlist, configuration_cache_1_2, Who's Online Enhancement 3.5.4, get_1_free_1.4_1.
Go to the top of the page
 
Phocea
posté 31 Mar 2009, 09:09
Message #2


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1448
Inscrit : 12-March 05
Lieu : Chuiche
Membre no 5120



Ca n'existe pas en francais à ma connaissance mais tu peux adapter ce script:

http://www.asp-php.net/scripts/asp-php/ajax.php?page=1

Sinon tu peux aussi adapter http://addons.oscommerce.com/info/4254 ou
http://addons.oscommerce.com/info/3942

Ce message a été modifié par Phocea - 31 Mar 2009, 09:26.
Go to the top of the page
 
audioshop
posté 1 Apr 2009, 21:20
Message #3


Ceinture bleue OSC
Icône de groupe

Groupe : Membres
Messages : 983
Inscrit : 8-April 08
Lieu : strasbourg
Membre no 21429



Bonsoir,

Alors moi j'ai trouver ce sujet très intéressant et je me suis donc penché sur le sujet.

j'ai essayé d'adapter la premier solution proposé par phocéa et voila ou en j'en suis:

j'ai télécharger ce fichier: insee.zip

j'ai rentrer cette requête dans ma base de donnée:

Code
#
# Structure de la table `villes`
#

CREATE TABLE villes (
  Commune varchar(30) NOT NULL default '',
  Codepos varchar(5) NOT NULL default '',
  Departement varchar(30) NOT NULL default '',
  INSEE varchar(5) NOT NULL default ''
) TYPE=MyISAM;


ensuite comme indiquer j'ai créer un fichier import.php
qui permet de rentrer le fichier insee.csv dans la nouvel table de la base de donnée

Code
<?
$table = "villes";
$fichier = "insee.csv";


include('includes/application_top.php');

$f = file($fichier); $i=0;

mysql_query("DELETE FROM $table");

foreach($f as $ligne) {
   if($i) {
      $ligne = addslashes(trim($ligne));
      $SQL = "INSERT INTO $table VALUES('".str_replace(";","','",$ligne)."')";
      mysql_query($SQL);
   } else $i++;
}

@mysql_close();
?>



ensuite j'ai créer un fichier _conn.php:
qui permet d'inscrire son login et mot passe ainsi que le nom de la base pour la connection

Code
<?
// Connexion à la base MySQL
@mysql_connect("Host MySQL ","User","Mot de passe");
@mysql_select_db("nom de la BDD");
?>


ensuite j'ai créer le fichier ville.php

Code
<?
$table = "villes";

include("_conn.php");

switch($q=@$_GET["q"]) {

   case "1": // Liste des codes postaux
      $query  = "SELECT DISTINCT Codepos FROM $table"
         . " WHERE Departement = '".$_POST["champ"]."' ORDER BY 1";
      
   case "2": // Liste des communes
      if(!@$query) $query  = "SELECT Commune,INSEE FROM $table"
         . " WHERE Codepos = '".$_POST["champ"]."' ORDER BY 1";

      echo 'var o = null;';  
      echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];';  
      echo 's.options.length = 0;';

      if($q<2) echo 's.options[s.options.length] = new Option("Choisir","");';

      $result = @mysql_query($query);  
      while($r = mysql_fetch_array($result))  
         echo 's.options[s.options.length] = new Option("'.$r[0].'","'.((@$r[1])?$r[1]:$r[0]).'");';

      echo 'update('.$q.');';
      break;

   default: // Liste des départements
      $liste_dpt = "";
      $SQL = "SELECT DISTINCT Departement FROM $table ORDER BY 1";
      $res = mysql_query($SQL);
      while($val = mysql_fetch_array($res))
         $liste_dpt .= "<option value=\"".$val[0]."\">".$val[0]."</option>\n";

      // Nom de la commune d'après le code INSEE
      if(@$adresse["INSEE"]) {
         $SQL = "SELECT Commune FROM $table WHERE INSEE='".$adresse["INSEE"]."'";
         $res = mysql_query($SQL);
         $adresse["Commune"] = mysql_result($res,0,0);
      }
}

@mysql_close();
?>


voilà jusqu'ici tout va bien j'ai tranferer tout les fichier sur mon hébergement, importé le fichier insee.csv dans la base de donnée et c'est la que ça se complique j'ai réussis à insérer les champ dans ma page create_account.php mais bien sur ça ne fonctionne pas et c'est la que je vais avoir besoin d'un peut d'aide smile.gif

j'ai fais comme ceci:

j'ai remplacé ce code :

Code
<tr>
                <td class="main"><?php echo ENTRY_POST_CODE; ?></td>
                <td class="main"><?php echo tep_draw_input_field('postcode') . '&nbsp;' . (tep_not_null(ENTRY_POST_CODE_TEXT) ? '<span class="inputRequirement">' . ENTRY_POST_CODE_TEXT . '</span>': ''); ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo ENTRY_CITY; ?></td>
                <td class="main"><?php echo tep_draw_input_field('city') . '&nbsp;' . (tep_not_null(ENTRY_CITY_TEXT) ? '<span class="inputRequirement">' . ENTRY_CITY_TEXT . '</span>': ''); ?></td>
              </tr>
<?php

  if (ACCOUNT_STATE == 'true') {

?>

              <tr>
                <td class="main"><?php echo ENTRY_STATE; ?></td>
                <td class="main">

<?php

    if ($process == true) {

      if ($entry_state_has_zones == true) {

        $zones_array = array();
        $zones_query = tep_db_query("select zone_name from " . TABLE_ZONES . " where zone_country_id = '" . (int)$country . "' order by zone_name");

        while ($zones_values = tep_db_fetch_array($zones_query)) {

          $zones_array[] = array('id' => $zones_values['zone_name'], 'text' => $zones_values['zone_name']);

        }

        echo tep_draw_pull_down_menu('state', $zones_array);

      } else {

        echo tep_draw_input_field('state');

      }

    } else {

      echo tep_draw_input_field('state');

    }

    if (tep_not_null(ENTRY_STATE_TEXT)) echo '&nbsp;<span class="inputRequirement">' . ENTRY_STATE_TEXT;

?>
                </td>
              </tr>
<?php

  }

?>


par celui-ci:

Code
<?php include('ville.php'); ?>

   <form name="form_selects" id="form_selects" method="POST" onSubmit="return test(this)";>

              <tr>
                <td class="main"><?php echo ENTRY_CITY; ?></td>
                <td class="main"><select class="select1" name="list0" id="list0" onChange="liste(this.form,1,2)">
            <option value="">== Choisir ==</option>
            <?=$liste_dpt?>
         </select></td>
              </tr>
              <tr>
                <td class="main"><?php echo ENTRY_POST_CODE; ?></td>
                <td class="main"><select class="select2" name="list1" id="list1" onChange="liste(this.form,2,2)">
         </select></td>
              </tr>
              <tr>
                <td class="main"><?php echo ENTRY_STATE; ?></td>
                <td class="main"><select class="select1" name="list2" id="list2">
         </select></td>
              </tr>
</form>


plus encore le code java script, je me doutai bien que c'était faux mais j'ai quand même essayé pour testé malheureusement les données ne sont pas pris en compte dans la BDD lors de l'inscription et et j'ai un message d'erreur qui est renvoyé me demandant de remplir les champs "code postale" "ville" "département".

Peut être que quelqu'un de compétant passeras par là et pourras m'expliquer comment modifier le code d'affichage de create_account.php pour que tout ça fonctionne wink.gif

merci et bonne soirée a tous.
Go to the top of the page
 
mosaic
posté 1 Apr 2009, 22:04
Message #4


Ceinture noire OSC
Icône de groupe

Groupe : Modérateurs
Messages : 2908
Inscrit : 24-October 04
Lieu : Quimper ( Finistère )
Membre no 3567



La base de galichon est sympa mais malheureusement les codes postaux évoluent régulièrement.
Selon un collègue, 200 codes ou villes impactées chaque année.

donc bien mais pas le top du top. blush.gif


--------------------
#mosaic {
autodidacte: max;
derision: min;
ms3: never;
occupation: 9999;
latitude : 48;
longitude : -4.1;
competent: none !important;
}

documentation MS2 / F.A.Q. / Contribes FR / Contribes US
Go to the top of the page
 
Phocea
posté 1 Apr 2009, 22:14
Message #5


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1448
Inscrit : 12-March 05
Lieu : Chuiche
Membre no 5120



Heureusement que nos amis de La Poste sont tj là pour nous donner un coup de main
http://www.laposte.fr/sna/rubrique.php3?id_rubrique=59

"reste plus" qu'a trouver le bon url (http://www.laposte.fr/sna/rubrique.php3?id_rubrique=59&recalcul=oui&&selCritere=CP&txtCP=XXXXX ?), un coup de cURL et c'est parti smile.gif
Go to the top of the page
 
mosaic
posté 1 Apr 2009, 22:29
Message #6


Ceinture noire OSC
Icône de groupe

Groupe : Modérateurs
Messages : 2908
Inscrit : 24-October 04
Lieu : Quimper ( Finistère )
Membre no 3567



attention, celà va finir comme coliposte, ils vont en faire des images ( moi, je dis çà, mais je dis rien !!! )


--------------------
#mosaic {
autodidacte: max;
derision: min;
ms3: never;
occupation: 9999;
latitude : 48;
longitude : -4.1;
competent: none !important;
}

documentation MS2 / F.A.Q. / Contribes FR / Contribes US
Go to the top of the page
 
datch1
posté 2 Apr 2009, 09:02
Message #7


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 121
Inscrit : 22-August 05
Membre no 6864



Le sujet est un petit peu moins touchy que les réclamations sur les hors délai...


--------------------
hctad
...................
Go to the top of the page
 
audioshop
posté 2 Apr 2009, 09:11
Message #8


Ceinture bleue OSC
Icône de groupe

Groupe : Membres
Messages : 983
Inscrit : 8-April 08
Lieu : strasbourg
Membre no 21429



super ton site phocéa c'est vrai qu'avec ta vision ou pourrais finir par en faire une belle contrib de ce bout de code en utilisant le site que tu as proposé comme référence des code postaux en france, dans le style reclamaposte ! biggrin.gif (si delete passe par là on a besoin de toi tongue.gif wink.gif )

sa pourrais vraiment être bien, mais comme je n'est pas les compétences nécessaires à cette modifications je me demandais si vous aviez pas une idée sur ce que j'étais déjà en train de faire au niveau de create_account.php car je ne pense pas être bien loin, le code fonctionne comme je l'ai mis! les codes postaux sont présent et trouve bien les villes correspondante mais bien sur il manque du code pour que les données soit inséré dans la base de donnée parce que moi j'ai tous simplement adapté le code proposé à mon code dans create_account.php sans grande conviction smile.gif .


ps: je suis tombé sur le cul quand j'ai lu que les codes postaux changeait régulièrement blink.gif là, j'apprends quelques choses. merci mosaic
Go to the top of the page
 
Phocea
posté 2 Apr 2009, 10:19
Message #9


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1448
Inscrit : 12-March 05
Lieu : Chuiche
Membre no 5120



Citation (mosaic @ 1 Apr 2009, 23:29) *
attention, celà va finir comme coliposte, ils vont en faire des images ( moi, je dis çà, mais je dis rien !!! )



Les pauvres smile.gif
Bon par contre, on a quand meme l'embarras du choix en cherchant un peu. Et si la base n'est pas à jours ce n'est pas forcement critique, il suffit de laisser la personne entrer çà à la main

D'autre site qui offre cette recherche
xxxx://www.fiducial.biz/?NODE_REF=Codes-postaux-INSEE
xxxx://www.dcode.fr/?outil=code-postal-insee-communes
xxxx://www.linteaux-de-france.com/index_site.htm

etc....

Effectivement si Delete passe par là il pourra surement nous pondre le bon appel en cURL avec la regex qui va bien... mais je crois qu'il est retenu par un douanier. La dernière fois que je l'ai appercu, le douanier tiré un lourd et épais rideau derrière lui et enfiler un gant en latex blanc....
Go to the top of the page
 
computer
posté 5 Apr 2009, 12:59
Message #10


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 135
Inscrit : 17-June 08
Lieu : Sur un yaucht
Membre no 22166



Ce qui est étonnant c'est que j'ai vu pas mal de boutique tournant sous oscommerce, et avoir cette fonction... pour ma part j'ai encore regardé à la loupe les contributions sur oscommerce.com et je n'ai rien trouvé de semblable.


--------------------
Version oscommerce : osCommerce 2.2 build 060817.
Contributions installées : Fancier_invoice_6.2, pollbooth_v2.3, StockTaking Cost 0.3, automatic_thumbnail_for_osc3v1.7, batch-print-center-3.13, country-state-selector, CSS_POP_UP_INSTALL, define_mainpage_v1.3.3_MS2_Fr, dob_dropdown_v1.0c, low stock report 2, master passord mpv1.4, Multiple_Products_Manager_2.5c, order_editor_5_0_61, OSC_Expeditor v2.1 by milerwan, osc_pdf_catalog_2.0.5_1, osCAffiliate v2.7, newsletter subscribers, RSS_News_V1.3, TinyMCE_in_osCommerce, Ultimate_SEO_URLs_v2-2.2e, User Tracking with Admin 1.4.2_1, wishlist, configuration_cache_1_2, Who's Online Enhancement 3.5.4, get_1_free_1.4_1.
Go to the top of the page
 
mihelicjm
posté 10 Oct 2012, 01:59
Message #11


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 52
Inscrit : 9-November 04
Lieu : Melun
Membre no 3721



Je reprends juste l'idée initiale de audioshop55 sur laquelle je me penche... à priori les lignes suivantes de create_account seraient à commenter:

CODE
// if (strlen($postcode) < ENTRY_POSTCODE_MIN_LENGTH) {
// $error = true;

//$messageStack->add('create_account', ENTRY_POST_CODE_ERROR);
//}

//if (strlen($city) < ENTRY_CITY_MIN_LENGTH) {
// $error = true;

// $messageStack->add('create_account', ENTRY_CITY_ERROR);
//}


à suivre...


--------------------
OsCommerce Bootstrap 2.3.4 visible ici >> Account_Balance_V4 >> Admin Notes with french v2.4_1 >> cronemul >> Extra Info to customer page in admin V1 >> extra_fields_v2_1 >> extra_images_v1-61 >> heardabout_1_25 >> mail-manager >> Menu deroulant date naissance Mini_Images_v2.0 >> Minimum_Order_Amount_1_4 >> Master Password 1_4 >> ordercheck >> Product Serial 1_0 >> PDF_Customer_Invoice_v1.0 >> points_rewardsV2.2beta >> RecoverCartSales 230 >> RMA_Returns_2-6 >> Suivi_colissimo >>
Go to the top of the page
 
chti_poupon
posté 10 Oct 2012, 11:10
Message #12


Ceinture noire OSC
Icône de groupe

Groupe : TechDev
Messages : 2744
Inscrit : 9-September 08
Lieu : Douai
Membre no 22915



Bonjour
Ces lignes contrôlent la longueur du code postal donné et du nom de la localité: quoiqu'on fasse, le client devra bien en taper l'un des deux et s'il tape mal, l'alerte reste utile.
Pour la base, une recherche simple sur "liste codes postaux france gratuit csv" conduit assez vite sur de nombreux sites fournisssant cette préstation ou donnant une adresse
Bons essais !
Chti poupon
Go to the top of the page
 
mihelicjm
posté 10 Oct 2012, 20:52
Message #13


Ceinture jaune OSC
Icône de groupe

Groupe : Membres
Messages : 52
Inscrit : 9-November 04
Lieu : Melun
Membre no 3721



Pour poursuivre l'idée initiale de audioshop55 sur laquelle je me suis penché et pour l'adapter à OsCommerce personnellement j'ai bien modifié les lignes citées hier de create_account puis une toute petite modif sur ville.php. J'ai remplacé :

CODE
case "2": // Liste des communes
if(!@$query) $query = "SELECT INSEE,Commune FROM $table"
. " WHERE Codepos = '".$_POST["champ"]."' ORDER BY 1";

par
CODE
case "2": // Liste des communes
if(!@$query) $query = "SELECT Commune FROM $table"
. " WHERE Codepos = '".$_POST["champ"]."' ORDER BY 1";


... et à priori ça semble tourner rond...! smile.gif


--------------------
OsCommerce Bootstrap 2.3.4 visible ici >> Account_Balance_V4 >> Admin Notes with french v2.4_1 >> cronemul >> Extra Info to customer page in admin V1 >> extra_fields_v2_1 >> extra_images_v1-61 >> heardabout_1_25 >> mail-manager >> Menu deroulant date naissance Mini_Images_v2.0 >> Minimum_Order_Amount_1_4 >> Master Password 1_4 >> ordercheck >> Product Serial 1_0 >> PDF_Customer_Invoice_v1.0 >> points_rewardsV2.2beta >> RecoverCartSales 230 >> RMA_Returns_2-6 >> Suivi_colissimo >>
Go to the top of the page
 
multiman
posté 25 Mar 2016, 22:05
Message #14


Ceinture jaune+ OSC
Icône de groupe

Groupe : Membres
Messages : 97
Inscrit : 25-May 08
Lieu : carcassonne
Membre no 21917



Bonjour,

Je m'intéresse à la recherche de la ville à partir du code postal suite aux nouvelles règles strict d'expéditor.
Par exemple, une ville doit être indiquée comme "ST" et non plus SAINT.
Lors de l'importation dans expeditor, c'est maintenant une fiche sur deux que je dois corriger.

J'ai donc demandé à colissimo de me proposer un web service ou autre pour avoir la bonne ville bien écrite comme il le faut. (en attendant de mettre l'adresse au bon format). Alors je suis passé d'un 08xx à un 08xx puis à un 02xx.
Non rien n'existe pour moi. Je crois pourtant avoir vu des choses pour prestashop, mais bon en php rien.

Bref, le sujet date mais cela pourra intéresser quelqu'un peut-être un jour.

Finalement, le technicien m'a conseillé de prendre u fichier dans le répertoire d'installation d'expéditor qui contient les correspondances CP/ VILLE.
Je n'ai encore rien fait, mais il me suffira de l'importer dans une table de ma base régulièrement pour proposer une list-box pour la ville.

Il m'a confirmé qu'il y avait environ 200 changements de code postal par an.

Voilou


--------------------
Version oscommerce: V2.2 Rc1
Contrib : STS V4.5.8 (Simple Template System), Dynamic Sitemap V4.0, Easy Meta Tag for STS, LightBox 1, visible_contries 1.2b, Agree2Terms, trackingcolissimo+ups1.0, easypopulate, Ultimate_SEO_URLs_v2-2, Mail Validation 2.1a, ot_discount_coupon_codes_3_31, AntiRobotRegistrationValidation-2.9, customers_extra_fields_EXTENDED, Dynamic Sitemap and STS, Featured Products 161 with STS 453 instructions, free shipping by cats v1.5, Mail Validation 2.1a, ot_discount_coupon_codes_3_31, PDF_Customer_Invoice_v1.1 + Add-ons, PRODUCT QUICK EDIT V2.1, Search_Price_Range_Pulldown_Menu_1.1.1, Simple_Down_For_Maintenance, Simple_Visitor_Newsleter_With_HTML_Support-1.0
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 23rd November 2017 - 08:45
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)