Afficher une requete de mysql dans une page web sans la recharger

Le problème exposé dans ce sujet a été résolu.

Bonjour,

Je sais pas trop comment faire mais j'aimerais pouvoir afficher dans un textarea la formule de politesse associé au 1er select (préfet, sous-pref, etc) et à la checkbox (le sexe du destinataire). Et que celle ci se recharge automatiquement dés que l'on change un paramètre.

Formulaire html

Base mysql

Une idée pour y arriver? Thx

+0 -0

Salut :)

Pour faire ça tu peut utiliser du JavaScript et une requête AJAX.

Penche toi sur l'objet XMLHttpRequest de JavaScript qui te permet de lancer des requêtes HTTP vers une page (PHP, etc…) et de récupérer des données sans recharger la page avec du JS.

Tu trouvera plein d'exemples sur le net :)

Salut
Tu vas effectivement avoir besoin de Javascript. Par contre tu n'es pas obligé d'utiliser de l'AJAX, d'après moi.

Tu peux effectivement faire une requête AJAX à chaque fois que l'on sélectionne un item de ta liste déroulante. Mais tu peux aussi stocker au chargement de la page (en PHP) les différentes formules de politesse de ta base de données. Le choix va dépendre de la quantité de formules de politesses de ta base de données, plus tu en auras plus AJAX sera préférable, de même plus tu sélectionnera souvent des formules de politesse (sans changer de page) plus la solution 100% JS sera préférable.

+0 -0

+1 SeeoX

Au final ça dépend beaucoup de ce que tu veux faire. Je ne suis même pas sur qu'une BDD soit vraiment utile, si les formules sont fixes autant utiliser un tableau en JS.

Si tu a besoin de pouvoir ajouter des formules après coup alors la BDD se justifie et dans ce cas Seeox a raison, soit tu charge tes formules coté serveur ou tu utilise AJAX pour les récupérer.

Des formules de politesse, il y en a genre une petite centaine… Et les formules sont fixes pour la majorité, sauf quelques unes qui demandent une modification manuel de l'utilisateur (d'où le textarea).

On peut faire un tableau JS et pouvoir modifier le contenu du textarea à chaque fois que je vais modifier soit le destinataire, soit le sexe?

Seeox, tu as parlé de stocker en php, ok. Mais je vois pas comment tu veux y arriver…

+0 -0

Seeox, tu as parlé de stocker en php, ok. Mais je vois pas comment tu veux y arriver…

alex4gous

Tu peux effectivement faire une requête AJAX à chaque fois que l'on sélectionne un item de ta liste déroulante. Mais tu peux aussi stocker au chargement de la page (en PHP) les différentes formules de politesse de ta base de données[…]

SeeoX

Désolé, ma formulation n'était pas clair :/
Ce que je voulais dire c'est que au chargement de ta page (donc en PHP) tu fais en sorte que le JS puisse récupérer les formules de politesse. Pour cela je te propose deux solutions ;)

  • Solution pas propre : crée une liste en JS (entre deux balises script)
  • Solution propre : Met un "value" a chacune des balises "option" de ta balise "select". Ce "value" aura pour valeur la formule de politesse que tu voudrais avoir. Puis en JS tu récupères le "value" de la balise "option" sélectionnée et tu le mets dans le "textarea".

La deuxième solution est peut-être la plus simple, mais surement la plus propre.

Salut,
Ce que je ne comprend pas, c'est si l'usage d'un langage serveur comme PHP et d'une base de données est nécessaire ici. Si tu stockes dès le départ toutes tes valeurs dans un objet JS du style :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
var formules = {
    prefet: {
        fda: {
            homme: 'Monsieur le Préfet',
            femme: 'Madame le Préfet'
        },
        fdp: {
            homme: '...',
            femme: '...'
        }
    },
    sous-prefet: {...},
    ...
}

Comme ça on évite beaucoup de requêtes vers le serveur. Après, comme dit précédemment, s'il y a beaucoup d'entrées, il est plus efficace d'utiliser PHP avec AJAX.

+0 -0

Je vais faire un mixte des 2 derniers commentaires (avec la solution propre) et créer une page php qui génèrera/créera automatiquement le tableau javascript sur un coin de mon site pour mettre à jour si besoin.

Le truc c'est que j'ai jamais tenté l'AJAX et que… ça à l'air long et chiant ^^ d'autant plus que je code mon site avec notepadd depuis le début ^^

Merci pour vos réponses :)

J'étais dans le même cas que toi l'année dernière. Je voulais me mettre à Ajax, mais je pensais que c'était difficile. Je suis passé directement à son utilisation via jQuery, et franchement, il n'y a rien du tout de compliqué pour des requêtes simples comme ça, ça se pige en très peu de temps.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte