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

JavaScript Discussion :

Ecrire dans une BDD en javascript


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut Ecrire dans une BDD en javascript
    Bonjour,

    Je voudrais savoir s'il est possible d'ecrire une donnée en BDD depuis le javascript.

    Par exemple, ecrire une donnée lors d'un evenement "onClick", sans recharger la page.

    Je pensais peut-etre à une requete XMLHTTP sans en attendre la reponse.

    Le but serais de rajouter à un site un systeme de statistiques permettant de savoir le pourcentage de clic sur tel et tel bouton. Il faudrait donc ajouter à chaque bouton une fonction "incrementeNombreClics()" sur l'evenement onClick sans perturber le fonctionnement du site...

    Merci !

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Points : 139
    Points
    139
    Par défaut
    Si tu as une base de données, c'est que tu as un hébergeur ou que tu héberge toi même ta base. Je te conseil donc de faire ça avec un script coté serveur. Si tu fais de l'XmlHttpRequest sans attendre la réponse, tu ne sera jamais si ton insertion en base est correct vu que tu n'atend pas de retour.

  3. #3
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    ok !

    Sauf, que, si je fais un script coté serveur, comment l'appeler sans modifier le comportement du site ?

    C'est à dire sans recharger la page, sans ouvrir de popup...

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Points : 139
    Points
    139
    Par défaut
    Tu peux faire de l'ajax. Si tu as une erreur, ça te le présisera, sinon, ce sera transparent.

  5. #5
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    Merci.

    Je n'ai jamais fais d'ajax... quelqu'un pourrait-il m'aider à faire cette requete, qui ne diot pas etre tres compliquée ?

  6. #6
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    AJAX n'est pas très compliqué, mais pas très simple non plus. Jette un oeil aux tutoriaux, ils sont bien faits et tu as des exemples réutilisables tels quels dans un premier temps. Après, si tu utilises régulièrement cette technique, encapsuler ça dans une classe ad hoc sera sans doute une évolution valable.

  7. #7
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    Ok !

    Juste une précision : comment ça se passe pour lancer une requete sans attendre de reponse ?

    Il suffit de ne pas gerer la reponse ?

    Je ne risque pas de "bloquer" l'interface ?

  8. #8
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    Non si ta fonction de rappel ne fait rien, elle ne bloque pas non plus l'interface. Je n'ai pas essayé de ne pas définir de fonction de rappel, par contre, mais je pense que ça, ça plante.

  9. #9
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    Et si, lorsque l'on clique sur le bouton, une requete Ajax est envoyée et que la page est rafraichie (ou changée) ?

    La fonction de rappel n'existe plus ?

  10. #10
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    Ha oui, petite précision au cas où il y ait des doutes là-dessus : pour autant que je sache, même si tu n'attends pas de réponse, tu en auras une. Tu peux (côté serveur) t'arranger pour renvoyer un noeud XML vide si vraiment tu ne veux rien communiquer. Mais de toutes manières il y a quelque chose qui part.

  11. #11
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    Ouais, bon, bref, va falloir tester tout ça !

    Parceque je pense pas avoir le bon comportement du premier coup !

    Merci pour toutes les precisions !

  12. #12
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    Citation Envoyé par buzzkaido
    Et si, lorsque l'on clique sur le bouton, une requete Ajax est envoyée et que la page est rafraichie (ou changée) ?

    La fonction de rappel n'existe plus ?
    Hmmmm... si tu envoies une requête Ajax sur un onclick(), tu déclenches une action côté serveur. En l'occurrence une insertion en bdd. Quand tu sors de ton script (php ?), le serveur renvoie une réponse au client XmlHttpRequest sous la forme d'un noeud XML.

    Côté client, le XmlHttpRequest a une fonction de rappel qui est activée à chaque réponse du serveur. Normalement, la fonction de rappel procède comme suit :
    - contrôle du statut de la réponse. Si statut == 4, alors la requête au serveur a été traitée, sinon c'est en cours ou en erreur.
    - si statut == 4, action côté client : dans ton cas, rien. Mais si tu veux rafraîchir la page, tu peux le faire à cet endroit en effet.

  13. #13
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    J'oubliais : la fonction de rappel est liée à l'objet XmlHttpRequest que tu as créé dans ton script JS. Si tu détruis cet objet (par exemple en rafraîchissant la page par F5 ou location.reload()), tu devrais avoir une erreur (une exception JS en fait...)

  14. #14
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Un bon principe même si ce n'est que pour faire une simple requête est de définir un ensemble de fonction côté serveur que tu invoque en ajax

    de cette façon peut importe comment le serveur traite les demandes la seule chose qui importe pour ton ajax est que la requête et la reponse garde le même format

    le serveur lui sur se charge de connaitre la base ou les fichiers ou je ne sais quoi d'autre

    ainsi si tu défini un service getInfoClient(nClient) tu peux juste faire dans un premier temps un page qui te retourne une valeur fixe
    tu peux developper ton ajaxt sans dificulté
    lorsque ton client est près tou peux te charger de voir comment ton service accèsde à la base et faire ta requète

    si on jour tu dois changer que tes info client ne sont plus dans une base mais dans LDAP tu ne change que ton service
    pariel si tu pase à une base XML ou que tu recherche dans un webservice

    SQL dans le code javascript est une abération
    A+JYT

Discussions similaires

  1. ecrire le contenu d'une jtable dans une BDD
    Par gdhugue1 dans le forum Composants
    Réponses: 1
    Dernier message: 13/06/2007, 15h52
  2. [MySQL] Comment ecrire dans une BDD à partir d'un tableau ?
    Par weed dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 16/09/2005, 15h53
  3. navigation dans une jsp avec javascript
    Par petitelulu dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/11/2004, 18h55
  4. Afficher une image JPG qui se trouve dans une bdd
    Par Harry dans le forum Bases de données
    Réponses: 6
    Dernier message: 27/02/2004, 10h51
  5. Changements de colonnes dans une BDD MySQL
    Par arnaud_verlaine dans le forum Requêtes
    Réponses: 8
    Dernier message: 07/08/2003, 11h33

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