CVT avec selection

Bonjour à tous

Je cherche à faire sur mon formulaire CVT un systeme de selection par code postaux. Je m’explique : quand je sélectionne un pays, on me propose les codes postaux puis les villes.

Merci de votre aides

pierre_kuhn

hello,

perso, je partirai sur un truc en ajax. tous les pays, villes et codes
postaux dans une table. un evenement onchange sur le pays (ou un event
en jquery) qui appelle une page (spip.php?page=codespostaux) en ajax. et
dans codespostaux.html, tu recuperes la variable postée et tu fais une
boucle sur ta table pour ne sortir que les codes postaux de ce pays.

un truc comme ca devrait rendre pas mal.

pour la fonction ajax, tu peux faire un truc comme ca :

function checkCP(pays) {
  $.post("spip.php?page=codespostaux",
  {
    pays : pays
  },
  function(data){
    $('#results').html(data);
  });

}

ca mettra dans un <div id="results"></div> la liste des codes postaux du
pays. (c'est un exemple, a toi de tuner ca comme tu veux)

Chag

Pierre KUHN a écrit :

Bonjour à tous

Je cherche à faire sur mon formulaire CVT un systeme de selection par
code postaux. Je m'explique : quand je sélectionne un pays, on me
propose les codes postaux puis les villes.

Merci de votre aides

pierre_kuhn

------------------------------------------------------------------------

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip

--
"Ca ne marche pas" ne veut rien dire. Alors ne dites rien (ou développez !)
"it doesn't work" means nothing. So, say nothing (or say more !)

Je suis partis sur un table avec le nom de tous les pays puis une table par pays
Mais c peut etre pas la bonne solution

A vous lire

pierre_kuhn

Le 8 avril 2009 10:53, chag <chagam@gmail.com> a écrit :

hello,

perso, je partirai sur un truc en ajax. tous les pays, villes et codes
postaux dans une table. un evenement onchange sur le pays (ou un event
en jquery) qui appelle une page (spip.php?page=codespostaux) en ajax. et
dans codespostaux.html, tu recuperes la variable postée et tu fais une
boucle sur ta table pour ne sortir que les codes postaux de ce pays.

un truc comme ca devrait rendre pas mal.

pour la fonction ajax, tu peux faire un truc comme ca :

function checkCP(pays) {
$.post(« spip.php?page=codespostaux »,
{
pays : pays
},
function(data){
$(‹ #results ›).html(data);
});

}

ca mettra dans un

la liste des codes postaux du
pays. (c’est un exemple, a toi de tuner ca comme tu veux)

Chag

Pierre KUHN a écrit :

Bonjour à tous

Je cherche à faire sur mon formulaire CVT un systeme de selection par
code postaux. Je m’explique : quand je sélectionne un pays, on me
propose les codes postaux puis les villes.

Merci de votre aides

pierre_kuhn



liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip


« Ca ne marche pas » ne veut rien dire. Alors ne dites rien (ou développez !)
« it doesn’t work » means nothing. So, say nothing (or say more !)

Je ne suis pas dbdesigner mais je ferai un truc dans le genre :

Table Pays
id_pays (int)
nom_pays (varchar 200)

Table cp
id_cp (int)
id_pays (int)
code_cp (varchar 10)
nom_cp (varchar 200)

Table ville
id_ville (int)
id_cp (int)
nom_ville (varchar 200)

ca depend un peu des données que tu as et de la souplesse que tu veux
donner au truc et de l'importance de la vitesse et du poids de la base.

tu peux aussi faire un truc un peu plus cochon du genre :

Table geo
id_geo
nom_pays
code_cp
nom_cp
nom_ville

mais ca t'oblige a avoir a chaque fois le nom_pays et le code_cp quand
tu cherches une ville (ou la liste des villes d'un cp). Alors qu'avec la
premiere solution, rien qu'avec le id_cp, tu peux retrouver une ville
(ou la liste des villes d'un cp)

mais comme je disais, je suis pas un pro dans le domaine :slight_smile:

Chag

Pierre KUHN a écrit :

Je suis partis sur un table avec le nom de tous les pays puis une table
par pays
Mais c peut etre pas la bonne solution

A vous lire

pierre_kuhn

Le 8 avril 2009 10:53, chag <chagam@gmail.com <mailto:chagam@gmail.com>>
a écrit :

    hello,

    perso, je partirai sur un truc en ajax. tous les pays, villes et codes
    postaux dans une table. un evenement onchange sur le pays (ou un event
    en jquery) qui appelle une page (spip.php?page=codespostaux) en ajax. et
    dans codespostaux.html, tu recuperes la variable postée et tu fais une
    boucle sur ta table pour ne sortir que les codes postaux de ce pays.

    un truc comme ca devrait rendre pas mal.

    pour la fonction ajax, tu peux faire un truc comme ca :

    function checkCP(pays) {
           $.post("spip.php?page=codespostaux",
           {
                   pays : pays
           },
           function(data){
                   $('#results').html(data);
           });

    }

    ca mettra dans un <div id="results"></div> la liste des codes postaux du
    pays. (c'est un exemple, a toi de tuner ca comme tu veux)

    Chag

    Pierre KUHN a écrit :
    > Bonjour à tous
    >
    > Je cherche à faire sur mon formulaire CVT un systeme de selection par
    > code postaux. Je m'explique : quand je sélectionne un pays, on me
    > propose les codes postaux puis les villes.
    >
    > Merci de votre aides
    >
    > pierre_kuhn
    >
    >
    >
    ------------------------------------------------------------------------
    >
    > _______________________________________________
    > liste spip
    > spip@rezo.net <mailto:spip@rezo.net> - désabonnement :
    spip-off@rezo.net <mailto:spip-off@rezo.net>
    >
    > Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
    >
    > Documentation de SPIP : http://www.spip.net/
    >
    > irc://irc.freenode.net/spip <http://irc.freenode.net/spip&gt; ou
    http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip
    <http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip&gt;

    --
    "Ca ne marche pas" ne veut rien dire. Alors ne dites rien (ou
    développez !)
    "it doesn't work" means nothing. So, say nothing (or say more !)

--
"Ca ne marche pas" ne veut rien dire. Alors ne dites rien (ou développez !)
"it doesn't work" means nothing. So, say nothing (or say more !)

voici comment je monte mets table
pays :
CREATE TABLE pays (
rowid int(11) NOT NULL auto_increment,
code varchar(2) NOT NULL,
fr varchar(255) NOT NULL,
en varchar(255) default NULL,
PRIMARY KEY (rowid)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

et chaque pays a une table
CREATE TABLE france (
rowid int(11) NOT NULL auto_increment,
CP varchar(5) NOT NULL default ‹  ›,
Ville varchar(50) NOT NULL default ‹  ›,
PRIMARY KEY (rowid)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

donc quand sur le formulaire je selectionne le pays, il va me sortir dans un autre champs les cp du pays , j eprend un cp et je vois les diffrentes ville de ce cp apparaitre

pierre_kuhn

Le 8 avril 2009 11:37, chag <chagam@gmail.com> a écrit :

Je ne suis pas dbdesigner mais je ferai un truc dans le genre :

Table Pays
id_pays (int)
nom_pays (varchar 200)

Table cp
id_cp (int)
id_pays (int)
code_cp (varchar 10)
nom_cp (varchar 200)

Table ville
id_ville (int)
id_cp (int)
nom_ville (varchar 200)

ca depend un peu des données que tu as et de la souplesse que tu veux
donner au truc et de l’importance de la vitesse et du poids de la base.

tu peux aussi faire un truc un peu plus cochon du genre :

Table geo
id_geo
nom_pays
code_cp
nom_cp
nom_ville

mais ca t’oblige a avoir a chaque fois le nom_pays et le code_cp quand
tu cherches une ville (ou la liste des villes d’un cp). Alors qu’avec la
premiere solution, rien qu’avec le id_cp, tu peux retrouver une ville
(ou la liste des villes d’un cp)

mais comme je disais, je suis pas un pro dans le domaine :slight_smile:

Chag

Pierre KUHN a écrit :

Je suis partis sur un table avec le nom de tous les pays puis une table
par pays
Mais c peut etre pas la bonne solution

A vous lire

pierre_kuhn

Le 8 avril 2009 10:53, chag <chagam@gmail.com mailto:[chagam@gmail.com](mailto:chagam@gmail.com)>

a écrit :

hello,

perso, je partirai sur un truc en ajax. tous les pays, villes et codes
postaux dans une table. un evenement onchange sur le pays (ou un event
en jquery) qui appelle une page (spip.php?page=codespostaux) en ajax. et
dans codespostaux.html, tu recuperes la variable postée et tu fais une
boucle sur ta table pour ne sortir que les codes postaux de ce pays.

un truc comme ca devrait rendre pas mal.

pour la fonction ajax, tu peux faire un truc comme ca :

function checkCP(pays) {
$.post(« spip.php?page=codespostaux »,
{
pays : pays
},
function(data){
$(‹ #results ›).html(data);
});

}

ca mettra dans un

la liste des codes postaux du
pays. (c’est un exemple, a toi de tuner ca comme tu veux)

Chag

Pierre KUHN a écrit :

Bonjour à tous

Je cherche à faire sur mon formulaire CVT un systeme de selection par
code postaux. Je m’explique : quand je sélectionne un pays, on me
propose les codes postaux puis les villes.

Merci de votre aides

pierre_kuhn

Pierre KUHN a écrit :

voici comment je monte mets table
pays :
CREATE TABLE `pays` (
  `rowid` int(11) NOT NULL auto_increment,
  `code` varchar(2) NOT NULL,
  `fr` varchar(255) NOT NULL,
  `en` varchar(255) default NULL,
  PRIMARY KEY (`rowid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

et chaque pays a une table
CREATE TABLE `france` (
  `rowid` int(11) NOT NULL auto_increment,
  `CP` varchar(5) NOT NULL default '',
  `Ville` varchar(50) NOT NULL default '',
  PRIMARY KEY (`rowid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

fais plutot une table pays dans ce genre :

CREATE TABLE `pays` (
  `rowid` int(11) NOT NULL auto_increment,
  `paysid` int(11) NOT NULL,
  `CP` varchar(5) NOT NULL default '',
  `Ville` varchar(50) NOT NULL default '',
  PRIMARY KEY (`rowid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

De cette facon, chaque cp et ville sera rattaché a un pays. Ca t'evite
de faire une table par pays. Ce qui peut etre un peu chiant a gerer
quand tu auras plusiuers pays.

accessoirement, le engine InnoDB, c'est plutot typé transactionnel.
c'est pas vraiment ton type d'utilisation.

myisam devrait largement suffire

donc quand sur le formulaire je selectionne le pays, il va me sortir
dans un autre champs les cp du pays , j eprend un cp et je vois les
diffrentes ville de ce cp apparaitre

c'est pas magique mais dans le principe, oui.

pierre_kuhn

Le 8 avril 2009 11:37, chag <chagam@gmail.com <mailto:chagam@gmail.com>>
a écrit :

    Je ne suis pas dbdesigner mais je ferai un truc dans le genre :

    Table Pays
    id_pays (int)
    nom_pays (varchar 200)

    Table cp
    id_cp (int)
    id_pays (int)
    code_cp (varchar 10)
    nom_cp (varchar 200)

    Table ville
    id_ville (int)
    id_cp (int)
    nom_ville (varchar 200)

    ca depend un peu des données que tu as et de la souplesse que tu veux
    donner au truc et de l'importance de la vitesse et du poids de la base.

    tu peux aussi faire un truc un peu plus cochon du genre :

    Table geo
    id_geo
    nom_pays
    code_cp
    nom_cp
    nom_ville

    mais ca t'oblige a avoir a chaque fois le nom_pays et le code_cp quand
    tu cherches une ville (ou la liste des villes d'un cp). Alors qu'avec la
    premiere solution, rien qu'avec le id_cp, tu peux retrouver une ville
    (ou la liste des villes d'un cp)

    mais comme je disais, je suis pas un pro dans le domaine :slight_smile:

    Chag

    Pierre KUHN a écrit :
    > Je suis partis sur un table avec le nom de tous les pays puis une
    table
    > par pays
    > Mais c peut etre pas la bonne solution
    >
    > A vous lire
    >
    > pierre_kuhn
    >
    > Le 8 avril 2009 10:53, chag <chagam@gmail.com
    <mailto:chagam@gmail.com> <mailto:chagam@gmail.com
    <mailto:chagam@gmail.com>>>
    > a écrit :
    >
    > hello,
    >
    > perso, je partirai sur un truc en ajax. tous les pays, villes
    et codes
    > postaux dans une table. un evenement onchange sur le pays (ou
    un event
    > en jquery) qui appelle une page (spip.php?page=codespostaux)
    en ajax. et
    > dans codespostaux.html, tu recuperes la variable postée et tu
    fais une
    > boucle sur ta table pour ne sortir que les codes postaux de ce
    pays.
    >
    > un truc comme ca devrait rendre pas mal.
    >
    > pour la fonction ajax, tu peux faire un truc comme ca :
    >
    > function checkCP(pays) {
    > $.post("spip.php?page=codespostaux",
    > {
    > pays : pays
    > },
    > function(data){
    > $('#results').html(data);
    > });
    >
    > }
    >
    > ca mettra dans un <div id="results"></div> la liste des codes
    postaux du
    > pays. (c'est un exemple, a toi de tuner ca comme tu veux)
    >
    > Chag
    >
    > Pierre KUHN a écrit :
    > > Bonjour à tous
    > >
    > > Je cherche à faire sur mon formulaire CVT un systeme de
    selection par
    > > code postaux. Je m'explique : quand je sélectionne un pays,
    on me
    > > propose les codes postaux puis les villes.
    > >
    > > Merci de votre aides
    > >
    > > pierre_kuhn

--
"Ca ne marche pas" ne veut rien dire. Alors ne dites rien (ou développez !)
"it doesn't work" means nothing. So, say nothing (or say more !)

Salut

est ce que tu sais faire dans un formulaire un champ "pays"on l’on choisis paysid affichier les codes postaux en fonction du dernier choix

Le 8 avril 2009 17:34, chag <chagam@gmail.com> a écrit :

entre 5 (1 par pays) tables de 1000 villes et 1 table de 5000 villes…
ca doit se valoir.

le probleme avec ta solution (1 table par pays), c’est que tu dois
definir quelle table interroger selon le pays. Le jour ou tu rajoutes un
pays, tu dois aller dans le code pour dire ‹ si tel pays alors telle
table ›. Bien sur, tu peux bidouiller en faisant correspondre le nom du
pays avec le nom de la table mais c’est pas super propre. alors qu’avec
seulement 2 tables, le nom de la tables des vilels a interroger est
toujours le meme.

Chag

Pierre KUHN a écrit :

Dans ce cas ça fait un fichier de donnees enorme non ?
car si j’ai bien compristu me fais faire un table avec tous

pierre-kuhn

Le 8 avril 2009 13:01, chag <chagam@gmail.com mailto:[chagam@gmail.com](mailto:chagam@gmail.com)>

a écrit :

Pierre KUHN a écrit :

voici comment je monte mets table
pays :
CREATE TABLE pays (
rowid int(11) NOT NULL auto_increment,
code varchar(2) NOT NULL,
fr varchar(255) NOT NULL,
en varchar(255) default NULL,
PRIMARY KEY (rowid)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

et chaque pays a une table
CREATE TABLE france (
rowid int(11) NOT NULL auto_increment,
CP varchar(5) NOT NULL default ‹  ›,
Ville varchar(50) NOT NULL default ‹  ›,
PRIMARY KEY (rowid)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

fais plutot une table pays dans ce genre :

CREATE TABLE pays (
rowid int(11) NOT NULL auto_increment,
paysid int(11) NOT NULL,
CP varchar(5) NOT NULL default ‹  ›,
Ville varchar(50) NOT NULL default ‹  ›,
PRIMARY KEY (rowid)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

De cette facon, chaque cp et ville sera rattaché a un pays. Ca t’evite
de faire une table par pays. Ce qui peut etre un peu chiant a gerer
quand tu auras plusiuers pays.

accessoirement, le engine InnoDB, c’est plutot typé transactionnel.
c’est pas vraiment ton type d’utilisation.

myisam devrait largement suffire

donc quand sur le formulaire je selectionne le pays, il va me sortir
dans un autre champs les cp du pays , j eprend un cp et je vois les
diffrentes ville de ce cp apparaitre

c’est pas magique mais dans le principe, oui.

pierre_kuhn

Le 8 avril 2009 11:37, chag <chagam@gmail.com

mailto:[chagam@gmail.com](mailto:chagam@gmail.com) <mailto:chagam@gmail.com
mailto:[chagam@gmail.com](mailto:chagam@gmail.com)>>

a écrit :

Je ne suis pas dbdesigner mais je ferai un truc dans le genre :

Table Pays
id_pays (int)
nom_pays (varchar 200)

Table cp
id_cp (int)
id_pays (int)
code_cp (varchar 10)
nom_cp (varchar 200)

Table ville
id_ville (int)
id_cp (int)
nom_ville (varchar 200)

ca depend un peu des données que tu as et de la souplesse que
tu veux
donner au truc et de l’importance de la vitesse et du poids de
la base.

tu peux aussi faire un truc un peu plus cochon du genre :

Table geo
id_geo
nom_pays
code_cp
nom_cp
nom_ville

mais ca t’oblige a avoir a chaque fois le nom_pays et le
code_cp quand
tu cherches une ville (ou la liste des villes d’un cp). Alors
qu’avec la
premiere solution, rien qu’avec le id_cp, tu peux retrouver
une ville
(ou la liste des villes d’un cp)

mais comme je disais, je suis pas un pro dans le domaine :slight_smile:

Chag

Pierre KUHN a écrit :

Je suis partis sur un table avec le nom de tous les pays
puis une
table
par pays
Mais c peut etre pas la bonne solution

A vous lire

pierre_kuhn

Le 8 avril 2009 10:53, chag <chagam@gmail.com
mailto:[chagam@gmail.com](mailto:chagam@gmail.com)
<mailto:chagam@gmail.com mailto:[chagam@gmail.com](mailto:chagam@gmail.com)>
<mailto:chagam@gmail.com mailto:[chagam@gmail.com](mailto:chagam@gmail.com)

<mailto:chagam@gmail.com mailto:[chagam@gmail.com](mailto:chagam@gmail.com)>>>

a écrit :

hello,

perso, je partirai sur un truc en ajax. tous les pays,
villes
et codes
postaux dans une table. un evenement onchange sur le
pays (ou
un event
en jquery) qui appelle une page (spip.php?page=codespostaux)
en ajax. et
dans codespostaux.html, tu recuperes la variable postée
et tu
fais une
boucle sur ta table pour ne sortir que les codes postaux
de ce
pays.

un truc comme ca devrait rendre pas mal.

pour la fonction ajax, tu peux faire un truc comme ca :

function checkCP(pays) {
$.post(« spip.php?page=codespostaux »,
{
pays : pays
},
function(data){
$(‹ #results ›).html(data);
});

}

ca mettra dans un

la liste des
codes
postaux du
pays. (c’est un exemple, a toi de tuner ca comme tu veux)

Chag

Pierre KUHN a écrit :

Bonjour à tous

Je cherche à faire sur mon formulaire CVT un systeme de
selection par
code postaux. Je m’explique : quand je sélectionne un
pays,
on me
propose les codes postaux puis les villes.

Merci de votre aides

pierre_kuhn


« Ca ne marche pas » ne veut rien dire. Alors ne dites rien (ou
développez !)
« it doesn’t work » means nothing. So, say nothing (or say more !)

« Ca ne marche pas » ne veut rien dire. Alors ne dites rien (ou développez !)
« it doesn’t work » means nothing. So, say nothing (or say more !)

Bonjour,

existe t-il un systeme de news (sous forme de breves) pour un espace public ?

merci.


De : Pierre KUHN pierrekuhn82@gmail.com
À : chag chagam@gmail.com; spip@rezo.net
Envoyé le : Jeudi, 9 Avril 2009, 11h40mn 32s
Objet : Re: [Spip] CVT avec selection

Salut

est ce que tu sais faire dans un formulaire un champ "pays"on l’on choisis paysid affichier les codes postaux en fonction du dernier choix

Le 8 avril 2009 17:34, chag <chagam@gmail.com> a écrit :

entre 5 (1 par pays) tables de 1000 villes et 1 table de 5000 villes…
ca doit se valoir.

le probleme avec ta solution (1 table par pays), c’est que tu dois
definir quelle table interroger selon le pays. Le jour ou tu rajoutes un
pays, tu dois aller dans le code pour dire ‹ si tel pays alors telle
table ›. Bien sur, tu peux bidouiller en faisant correspondre le nom du
pays avec le nom de la table mais c’est pas super propre. alors qu’avec
seulement 2 tables, le nom de la tables des vilels a interroger est
toujours le meme.

Chag

Pierre KUHN a écrit :

Dans ce cas ça fait un fichier de donnees enorme non ?
car si j’ai bien compristu me fais faire un table avec tous

pierre-kuhn

Le 8 avril 2009 13:01, chag <chagam@gmail.com mailto:[chagam@gmail.com](mailto:chagam@gmail.com)>

a écrit :

Pierre KUHN a écrit :

voici comment je monte mets table
pays :
CREATE TABLE pays (
rowid int(11) NOT NULL auto_increment,
code varchar(2) NOT NULL,
fr varchar(255) NOT NULL,
en varchar(255) default NULL,
PRIMARY KEY (rowid)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

et chaque pays a une table
CREATE TABLE france (
rowid int(11) NOT NULL auto_increment,
CP varchar(5) NOT NULL default ‹  ›,
Ville varchar(50) NOT NULL default ‹  ›,
PRIMARY KEY (rowid)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

fais plutot une table pays dans ce genre :

CREATE TABLE pays (
rowid int(11) NOT NULL auto_increment,
paysid int(11) NOT NULL,
CP varchar(5) NOT NULL default ‹  ›,
Ville varchar(50) NOT NULL default ‹  ›,
PRIMARY KEY (rowid)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

De cette facon, chaque cp et ville sera rattaché a un pays. Ca t’evite
de faire une table par pays. Ce qui peut etre un peu chiant a gerer
quand tu auras plusiuers pays.

accessoirement, le engine InnoDB, c’est plutot typé transactionnel.
c’est pas vraiment ton type d’utilisation.

myisam devrait largement suffire

donc quand sur le formulaire je selectionne le pays, il va me sortir
dans un autre champs les cp du pays , j eprend un cp et je vois les
diffrentes ville de ce cp apparaitre

c’est pas magique mais dans le principe, oui.

pierre_kuhn

Le 8 avril 2009 11:37, chag <chagam@gmail.com

mailto:[chagam@gmail.com](mailto:chagam@gmail.com) <mailto:chagam@gmail.com
mailto:[chagam@gmail.com](mailto:chagam@gmail.com)>>

a écrit :

Je ne suis pas dbdesigner mais je ferai un truc dans le genre :

Table Pays
id_pays (int)
nom_pays (varchar 200)

Table cp
id_cp (int)
id_pays (int)
code_cp (varchar 10)
nom_cp (varchar 200)

Table ville
id_ville (int)
id_cp (int)
nom_ville (varchar 200)

ca depend un peu des données que tu as et de la souplesse que
tu veux
donner au truc et de l’importance de la vitesse et du poids de
la base.

tu peux aussi faire un truc un peu plus cochon du genre :

Table geo
id_geo
nom_pays
code_cp
nom_cp
nom_ville

mais ca t’oblige a avoir a chaque fois le nom_pays et le
code_cp quand
tu cherches une ville (ou la liste des villes d’un cp). Alors
qu’avec la
premiere solution, rien qu’avec le id_cp, tu peux retrouver
une ville
(ou la liste des villes d’un cp)

mais comme je disais, je suis pas un pro dans le domaine :slight_smile:

Chag

Pierre KUHN a écrit :

Je suis partis sur un table avec le nom de tous les pays
puis une
table
par pays
Mais c peut etre pas la bonne solution

A vous lire

pierre_kuhn

Le 8 avril 2009 10:53, chag <chagam@gmail.com
mailto:[chagam@gmail.com](mailto:chagam@gmail.com)
<mailto:chagam@gmail.com mailto:[chagam@gmail.com](mailto:chagam@gmail.com)>
<mailto:chagam@gmail.com mailto:[chagam@gmail.com](mailto:chagam@gmail.com)

<mailto:chagam@gmail.com mailto:[chagam@gmail.com](mailto:chagam@gmail.com)>>>

a écrit :

hello,

perso, je partirai sur un truc en ajax. tous les pays,
villes
et codes
postaux dans une table. un evenement onchange sur le
pays (ou
un event
en jquery) qui appelle une page (spip.php?page=codespostaux)
en ajax. et
dans codespostaux.html, tu recuperes la variable postée
et tu
fais une
boucle sur ta table pour ne sortir que les codes postaux
de ce
pays.

un truc comme ca devrait rendre pas mal.

pour la fonction ajax, tu peux faire un truc comme ca :

function checkCP(pays) {
$.post(« spip.php?page=codespostaux »,
{
pays : pays
},
function(data){
$(‹ #results ›).html(data);
});

}

ca mettra dans un

la liste des
codes
postaux du
pays. (c’est un exemple, a toi de tuner ca comme tu veux)

Chag

Pierre KUHN a écrit :

Bonjour à tous

Je cherche à faire sur mon formulaire CVT un systeme de
selection par
code postaux. Je m’explique : quand je sélectionne un
pays,
on me
propose les codes postaux puis les villes.

Merci de votre aides

pierre_kuhn


« Ca ne marche pas » ne veut rien dire. Alors ne dites rien (ou
développez !)
« it doesn’t work » means nothing. So, say nothing (or say more !)

« Ca ne marche pas » ne veut rien dire. Alors ne dites rien (ou développez !)
« it doesn’t work » means nothing. So, say nothing (or say more !)

heu, oui, je saurai le faire. C'est a peu pres ce que j'ai expliqué dans
un des premiers mails non (le 1er il me semble)

Chag

Pierre KUHN a écrit :

Salut

est ce que tu sais faire dans un formulaire un champ "pays"on l'on
choisis paysid affichier les codes postaux en fonction du dernier choix

Le 8 avril 2009 17:34, chag <chagam@gmail.com <mailto:chagam@gmail.com>>
a écrit :

    entre 5 (1 par pays) tables de 1000 villes et 1 table de 5000 villes...
    ca doit se valoir.

    le probleme avec ta solution (1 table par pays), c'est que tu dois
    definir quelle table interroger selon le pays. Le jour ou tu rajoutes un
    pays, tu dois aller dans le code pour dire 'si tel pays alors telle
    table'. Bien sur, tu peux bidouiller en faisant correspondre le nom du
    pays avec le nom de la table mais c'est pas super propre. alors qu'avec
    seulement 2 tables, le nom de la tables des vilels a interroger est
    toujours le meme.

    Chag

    Pierre KUHN a écrit :
    > Dans ce cas ça fait un fichier de donnees enorme non ?
    > car si j'ai bien compristu me fais faire un table avec tous
    >
    > pierre-kuhn
    >
    > Le 8 avril 2009 13:01, chag <chagam@gmail.com
    <mailto:chagam@gmail.com> <mailto:chagam@gmail.com
    <mailto:chagam@gmail.com>>>
    > a écrit :
    >
    >
    >
    > Pierre KUHN a écrit :
    > > voici comment je monte mets table
    > > pays :
    > > CREATE TABLE `pays` (
    > > `rowid` int(11) NOT NULL auto_increment,
    > > `code` varchar(2) NOT NULL,
    > > `fr` varchar(255) NOT NULL,
    > > `en` varchar(255) default NULL,
    > > PRIMARY KEY (`rowid`)
    > > ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    > >
    > > et chaque pays a une table
    > > CREATE TABLE `france` (
    > > `rowid` int(11) NOT NULL auto_increment,
    > > `CP` varchar(5) NOT NULL default '',
    > > `Ville` varchar(50) NOT NULL default '',
    > > PRIMARY KEY (`rowid`)
    > > ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    > >
    >
    > fais plutot une table pays dans ce genre :
    >
    > CREATE TABLE `pays` (
    > `rowid` int(11) NOT NULL auto_increment,
    > `paysid` int(11) NOT NULL,
    > `CP` varchar(5) NOT NULL default '',
    > `Ville` varchar(50) NOT NULL default '',
    > PRIMARY KEY (`rowid`)
    > ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    >
    > De cette facon, chaque cp et ville sera rattaché a un pays. Ca
    t'evite
    > de faire une table par pays. Ce qui peut etre un peu chiant a
    gerer
    > quand tu auras plusiuers pays.
    >
    > accessoirement, le engine InnoDB, c'est plutot typé
    transactionnel.
    > c'est pas vraiment ton type d'utilisation.
    >
    > myisam devrait largement suffire
    >
    > > donc quand sur le formulaire je selectionne le pays, il va
    me sortir
    > > dans un autre champs les cp du pays , j eprend un cp et je
    vois les
    > > diffrentes ville de ce cp apparaitre
    >
    > c'est pas magique mais dans le principe, oui.
    >
    > >
    > > pierre_kuhn
    > >
    > > Le 8 avril 2009 11:37, chag <chagam@gmail.com
    <mailto:chagam@gmail.com>
    > <mailto:chagam@gmail.com>
    <mailto:chagam@gmail.com
    > <mailto:chagam@gmail.com>>>
    > > a écrit :
    > >
    > > Je ne suis pas dbdesigner mais je ferai un truc dans le
    genre :
    > >
    > > Table Pays
    > > id_pays (int)
    > > nom_pays (varchar 200)
    > >
    > > Table cp
    > > id_cp (int)
    > > id_pays (int)
    > > code_cp (varchar 10)
    > > nom_cp (varchar 200)
    > >
    > > Table ville
    > > id_ville (int)
    > > id_cp (int)
    > > nom_ville (varchar 200)
    > >
    > > ca depend un peu des données que tu as et de la
    souplesse que
    > tu veux
    > > donner au truc et de l'importance de la vitesse et du
    poids de
    > la base.
    > >
    > > tu peux aussi faire un truc un peu plus cochon du genre :
    > >
    > > Table geo
    > > id_geo
    > > nom_pays
    > > code_cp
    > > nom_cp
    > > nom_ville
    > >
    > > mais ca t'oblige a avoir a chaque fois le nom_pays et le
    > code_cp quand
    > > tu cherches une ville (ou la liste des villes d'un cp).
    Alors
    > qu'avec la
    > > premiere solution, rien qu'avec le id_cp, tu peux retrouver
    > une ville
    > > (ou la liste des villes d'un cp)
    > >
    > > mais comme je disais, je suis pas un pro dans le domaine :slight_smile:
    > >
    > > Chag
    > >
    > > Pierre KUHN a écrit :
    > > > Je suis partis sur un table avec le nom de tous les pays
    > puis une
    > > table
    > > > par pays
    > > > Mais c peut etre pas la bonne solution
    > > >
    > > > A vous lire
    > > >
    > > > pierre_kuhn
    > > >
    > > > Le 8 avril 2009 10:53, chag <chagam@gmail.com
    <mailto:chagam@gmail.com>
    > <mailto:chagam@gmail.com>
    > > <mailto:chagam@gmail.com
    <mailto:chagam@gmail.com>>
    > <mailto:chagam@gmail.com
    <mailto:chagam@gmail.com>
    > > <mailto:chagam@gmail.com
    <mailto:chagam@gmail.com>>>>
    > > > a écrit :
    > > >
    > > > hello,
    > > >
    > > > perso, je partirai sur un truc en ajax. tous les pays,
    > villes
    > > et codes
    > > > postaux dans une table. un evenement onchange sur le
    > pays (ou
    > > un event
    > > > en jquery) qui appelle une page
    (spip.php?page=codespostaux)
    > > en ajax. et
    > > > dans codespostaux.html, tu recuperes la variable
    postée
    > et tu
    > > fais une
    > > > boucle sur ta table pour ne sortir que les codes
    postaux
    > de ce
    > > pays.
    > > >
    > > > un truc comme ca devrait rendre pas mal.
    > > >
    > > > pour la fonction ajax, tu peux faire un truc comme
    ca :
    > > >
    > > > function checkCP(pays) {
    > > > $.post("spip.php?page=codespostaux",
    > > > {
    > > > pays : pays
    > > > },
    > > > function(data){
    > > > $('#results').html(data);
    > > > });
    > > >
    > > > }
    > > >
    > > > ca mettra dans un <div id="results"></div> la
    liste des
    > codes
    > > postaux du
    > > > pays. (c'est un exemple, a toi de tuner ca comme
    tu veux)
    > > >
    > > > Chag
    > > >
    > > > Pierre KUHN a écrit :
    > > > > Bonjour à tous
    > > > >
    > > > > Je cherche à faire sur mon formulaire CVT un
    systeme de
    > > selection par
    > > > > code postaux. Je m'explique : quand je
    sélectionne un
    > pays,
    > > on me
    > > > > propose les codes postaux puis les villes.
    > > > >
    > > > > Merci de votre aides
    > > > >
    > > > > pierre_kuhn
    > >
    >
    > --
    > "Ca ne marche pas" ne veut rien dire. Alors ne dites rien (ou
    > développez !)
    > "it doesn't work" means nothing. So, say nothing (or say more !)
    >

    --
    "Ca ne marche pas" ne veut rien dire. Alors ne dites rien (ou
    développez !)
    "it doesn't work" means nothing. So, say nothing (or say more !)

--
"Ca ne marche pas" ne veut rien dire. Alors ne dites rien (ou développez !)
"it doesn't work" means nothing. So, say nothing (or say more !)