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 :

Passer une variable (nombre) php (contenu dans BDD) dans un objet javascript


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Passer une variable (nombre) php (contenu dans BDD) dans un objet javascript
    Bonjour à tous,

    Je suis en ce moment en train de coder une interface graphique en lien avec une base de données et j'utilise du javascript pour créer des objets dynamiques. J'ai donc crée un speedometer (compteur de vitesse) que je voudrais mettre à jour en temps réel grâce à ma base de données. J'ai tout le code qu'il faut niveau php ce qui bloque c'est lors du passage php dans mon appel à la valeur dans mon objet. Je vous mets le code histoire que vous compreniez.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <canvas id="canvas1" width="250" height="250"></canvas>
      <script>
     
    	var jauge = new Jauge("canvas1", {'mode':'needle', 'range': {'min':0, 'max':140 } });
    	jauge.draw();
    	var run = setInterval(function() { jauge.draw( <?php
            // connection au serveur de base de données
    	$link = mysqli_connect("localhost","moi", "mdp", "projet_karting") or die (mysqli_error ($link));
            //Séléction de la base de données
    	mysqli_select_db($link, "projet_karting");
    	//Commande SQL
    	$strSQL = "SELECT `Vbat1` FROM `reception_trame` WHERE `Created`=(SELECT MAX(`Created`) FROM `reception_trame`) ";
    	// Execute la commande ($Vbat1 contient le résultat)
            $Vbat1 = mysqli_query($link, $strSQL);
    	var_dump ($Vbat1);
    	// Boucle d'affichage
    	// Chaque rangée sera faite dans un tableau ($row) en utilisant mysql_fetch_array
    	while($row = mysqli_fetch_row($Vbat1)) {
     
    	// Écrivez la valeur de la colonne Vbat1 (qui est maintenant dans le tableau $row)
    	var_dump ($row);								
    							}
      </script>
    Voilà j'espère que ce sera plus clair.

    Je continue, et oui ce n'est pas fini, ma valeur doit retourner 12 donc mon compteur de vitesse doit se mettre à 12. la valeur '12' est considérée comme un string, mais cette valeur est susceptible de changer car stocké dans le champ d'une table contenu dans ma base de donnée qui subira un rafraîchissement toutes les secondes.

    Je pense que j'ai étais le plus clair possible, je vous dit un grand merci d'avance pour le temps que vous consacrerez à me répondre. N'hésitez pas à me poser des questions je répondrai sans faute dans la mesure du possible

  2. #2
    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
    une recherche dans le forum et dans contribuez
    De PHP à JavaScript : une méthode [Trucs & Astuces]

    A+JYT

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci de votre réponse, j'ai bien lus tout ce qui se trouvait sur le lien mais j'ai un peu de mal à comprendre, je débute en javascript et j'ai ce problème qui me gêne. Si je pouvais avoir une explication qui concerne le passage d'une valeur présente dans une BDD qui sera passée à un objet js(qui lui même sera rafraîchit toutes les secondes) ce serai génial. Dans votre exemple si j'ai bien compris vous mettez un tableau qui va contenir les valeurs passées à l'objet mais vus qu'elles changent toutes les secondes est ce que ça ne va pas poser problème.

    Un grand merci d'avance

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Considère que php est juste une machine à écrire ton code html / js
    C'est Php qui fait le requete dans la BDD, il ne lui reste ensuite qu'à rédigier le code js qui va bien

    ensuite php s'execute coté serveur,
    js coté client

    Si tu veux un rafraichissement régulier: toutes les secondes est un peu trop court il faut penser au temps reseau + temps de requete.
    Il va falloir passer par de l'ajax pour ne pas recharger toute la page à chaque fois.
    Regarde les tutos ajax http://ajax.developpez.com/cours/
    ou ajax avec jquery ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonsoir SpaceFrog, merci de votre réponse, pour le rafraîchissement j'ai inclus directement une fonction car j'agis sur un canvas je lui est donc mis en paramètre dans mon js ce qui fait que quand je l'appel il se rafraîchit automatiquement =) mais je vais regarder les tutos d'ajax qui pourront sans doutes m'aider à comprendre pourquoi mon objet n'apparaît plus lorsque je lui passe cette valeur par requête SQL.

    Encore un grand merci je vais jeter un oeil demain car j'ai toute la journée =) Youuupiiii

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut J'ai la solution :p
    Bonsoir les amis,

    J'espère ne pas être en fraude en mettant un double post mais celui-ci en intéressera surement plus d'un =)

    Et oui après quelques semaines de recherche, je sais c'est long :/ mais je n'ai pas que ce travail en cours, j'ai enfin la solution à mon problème je vais donc vous la partager

    Tout d'abord j'ai changé le mysqli par du PDO, car les fonctions de PDO sont plus faciles à mettre en oeuvre et c'est très bien expliqué sur le site officiel de php

    Voilà le code, c'est grâce à la fonction fetchColumn que je récupère exactement ce qu'il y a dans ma BDD c'est à dire le contenu qui est un int, de plus pour récupérer le dernier avec un id ça se fait très simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <canvas id="canvas1" width="200" height="200"></canvas>
    					<script>
    					<!-- MON PROBLEME ETAIT LA OU J'AI INSERE LA FONCTION PHP-->	
    						var jauge = new Jauge("canvas1", {'mode':'needle', 'range': {'min':0, 'max':140 } });
    						jauge.draw();
    						var run = setInterval(function() { jauge.draw( <?php
                            $dsn = 'mysql:dbname=projet_karting;host=127.0.0.1';
    			$user = 'root';
    			$password = '';
    			$pdo=new PDO($dsn, $user, $password);
    			$sql="SELECT Vbat1 FROM test WHERE id=(SELECT MAX(id) FROM test)";
    			$stmt=$pdo->query($sql);
    			$result=$stmt->fetchColumn();
    			echo $result;
     
    ?> ); }, 1000);
    					</script>
    Encore un grand merci pour l'aide que vous m'avez apporté et à très vite

    Ce sujet est donc

  7. #7
    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
    je ne sais si ça intéressera plus d'un

    mais je déconseille à quiconque de suivre cette voie quant à la façon de programmer.

    je conseille à tous de mettre le php dans des fichiers php le js dans des fichiers JS
    et de faire les échanges de données entre php et javascript
    soit par l'insertion d'un block JSON généré par json_encode dans le header de la page
    soit par requête ajax

    de plus dans php séparez les couches présentation traitement persistance.

    bref évitez comme la peste un tel vrac.
    A+JYT

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passer une variable PHP dans un fichier .JS
    Par kenru dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/09/2009, 08h51
  2. Comment passer une variable PHP dans une Alert
    Par Alexandrebox dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 25/01/2009, 18h53
  3. [PHP-JS] Passer une variable dans une fonction
    Par Ziltoid dans le forum Langage
    Réponses: 1
    Dernier message: 25/10/2007, 09h18
  4. [Tableaux] passer une variable php dans une url
    Par griese dans le forum Langage
    Réponses: 27
    Dernier message: 12/06/2006, 09h02
  5. [PHP-JS] Passer une variable PHP->JS dans une boucle
    Par PedroBD dans le forum Langage
    Réponses: 2
    Dernier message: 12/05/2006, 11h43

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