IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Listes liées avec rechargement spécifique [Fait]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 73
    Points : 54
    Points
    54
    Par défaut Listes liées avec rechargement spécifique
    Bonjour.

    Mais qu'est-ce donc que ce titre me direz-vous ? Surtout qu'il existe énormément de sujets sur la question dans le forum et sur d'autres sites. Sans parler des tutos, eux aussi nombreux.

    En fait mon problème est complexe... du moins pour moi.

    J'ai un fichier source assez volumineux (entre 20 et 30 Mo) que je parse.
    Je stocke les données dans différents tableaux.

    Ma première liste contient la région, la seconde le département et la troisième la ville. Trois listes déroulantes liées donc.
    Trois possibilité s'offrent à moi :
    - en PHP : trop long
    - en Ajax : idem vu la grosseur du fichier source.
    - en JS : une seule attente.
    Le problème : avec le script que j'utilise, j'ai un problème de mémoire.
    Voir également ce sujet.

    La solution : créer le code javascript à l'aide de php.

    A priori rien de compliqué, mais j'aimerai avoir la marche à suivre ou pourquoi pas un lien vers un tuto.


    MAIS ceci n'est que la première partie du problème.

    Une fois que cela sera mis en place, il faut savoir que pour générer cette page, je choisis un paramètre que l'on appellera pays.
    L'idéal pour moi, ce serait CETTE FOIS d'utiliser Ajax lorsque je change ce paramètre.
    Concrétement :
    Form 1 = paramètres pays
    Form 2 = 3 listes déroulantes : région, département, ville
    Il faut donc que lorsque je change le pays, les 3 listes déroulantes se rechargent.
    Or ces 3 listes seront construites à partir d'un javascript généré par PHP.
    Ajax permet de réécrire des valeurs de formulaires, des DIV mais permet-il de réécrire un Javascript ?


    Voilà, je sais ce que vous allez me dire à savoir que ce que je cherche à faire est trop compliqué.
    Je vous serez néanmoins reconnaissant de m'aider au moins à répondre à mon premier problème, à savoir générer un javascript de listes liées à partir de php.

    Merci à vous.

  2. #2
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 022
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    si j'ai bien compris ton problème :
    Déjà je pense que tu as intérêt à mettre tes données en base de données une bonne fois pour toute plutôt que de saturer la mémoire de ton serveur à chaque fois. S'il y a pas moyen, il faudrait au moins découper tes fichiers sources et en utilisant une arborescence de répertoires par exemple.

    Ensuite tu fais ça en PHP pur ou en Ajax c'est pas le problème (avec ou sans rechargement de page). Le problème c'est que tu construit toute ta liste en JS, en général il faut construire que la branche sélectionné de l'arbre.

    Concrètement en PHP sans JS :
    - tu passes la variable de ton pays en post/get
    - tu récupères ta liste de régions associées au pays sélectionné sur le serveur (dans la BDD ou dans ton fichier nommé nomPays-region.txt)
    - tu crées ton select de régions associées au pays
    - tu passes les 2 variables pays, region
    - tu récupères ta liste de départements associés à la région sur le serveur
    - tu crées tes select de pays, régions, départements
    - etc.

    C'est juste un exemple car c'est typiquement le type de problème où Ajax devient intéressant.

    A mon avis il faut que tu oublies le script JS que tu utilises sur ce coup-là (ou alors ne lui fournir que les listes nécessaires, pas toutes les données) mais ce n'est pas difficile de créer des select depuis une BDD ou fichier.
    Vive les roues en pierre

  3. #3
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour,

    Tu peux voir du coté de mon source :
    Listes liées avec AJAX et PHP

    Mais 30 Mo de données je ne vois pas l'interet de charger tout ça.
    Tu devrais déjà faire un premier select sur la région, aller à la page suivante et te servir de mon code pour faire tes select de departements et de villes

    Et comme le disait Djakisback, mets tout en base de données ce sera plus facile à manipuler

Discussions similaires

  1. [DOM] Liste liées avec ajax
    Par lenissart dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 26/01/2009, 17h08
  2. [MySQL] 3 listes liées avec PHP/MYSQL
    Par sadigoun dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 22/10/2008, 12h41
  3. [AJAX] Listes liées avec Ajax
    Par Zak_92 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 15/08/2007, 12h19
  4. [1.0.12]Listes liées avec Javascript
    Par slim dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 08/06/2007, 23h07
  5. [AJAX] Listes liées
    Par oranocha dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/02/2007, 06h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo