Insertion BaseDonne à partir de javascript

Discutez d'informatique ici !
Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

Insertion BaseDonne à partir de javascript

par Rockleader » 30 Mar 2015, 15:09

Encore un petit soucis que je ne sais pas comment aborder.


Je possède une variable qui prend diverses valeurs au cours d'un script.

Lorsque la fonction se termine je voudrais stocké la valeur de ma variable dans ma base de donnée.


D'où ma question: peut on à partir d'un .js faire une insertions dans une base de donnée ?

Si oui comment ?


Si non; comment procéder pour récupérer ma variable javascript dans le code d'une page php ?


Pour le moment j'ai fais un document.write(variable)...sauf que la variable part s'afficher dans une page vide; donc aucune idée de comment faire :mur:
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !



Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 07:03

par ampholyte » 30 Mar 2015, 15:44

Bonjour,

Tu peux faire une requête ajax depuis ton client vers ton serveur. Il te suffirait simplement côté serveur d'écrire un programme qui vient écrire dans ta base suivant le paramètre envoyé.

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 30 Mar 2015, 16:01

Merci pour te réponse; je suis allé feuilleté rapidement sur developpez le principe de ajax: http://siddh.developpez.com/articles/ajax/#LIV-A

Mais j'avoue ne pas trop avoir compris.


Pour simplifier la situation; voici deux fichier

s1.js
Code: Tout sélectionner
var variable=0;

function incr()
{
   variable=vaariable+50;
}


Ce fichier javascript contient donc une fonction qui incrémente une variable globale, rien de sorcier.


Coté php; j'aurais une page

f1.php
Code: Tout sélectionner
 incr();


EN lançant f1.php la variable du script s'incrémente.

DU coup; quelle modification je devrais faire pour avoir pouvoir par exemple récupérer la valeur de variable avant et après l'appel de incr dans ma page php ?


Dans l'exemple de developpez ce sont deux pages php.

Dans mon cas j'ai bien un fichier js et un fichier php.



Merci.
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 07:03

par ampholyte » 30 Mar 2015, 16:11

J'avoue ne pas comprendre ton exemple.

Avant l'appel de ta fonction ta variable vaudra 0, après ta fonction ta variable vaudra 50.

Tu ne pourrais pas passer par deux variables à ce moment là ? (une pour la valeur précédente et une pour la suivante)

Je ne comprends pas vraiment à quel moment tu as une liaison avec ta base.

Regarde sur ce site, ce sera peut-être plus clair : http://openclassrooms.com/courses/ajax-et-l-echange-de-donnees-en-javascript

Code: Tout sélectionner

var old = 0;
var myvar = 0;

function incr() {
     var tmp = myvar;
     
     myvar = old + 50;
     old = tmp;
}

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 30 Mar 2015, 16:34

Bon; l'idée du avant après c'était juste pour avoir un exemple simple


En réalité ce que je cherche réellement à faire c'est


dans ma page php; je lance une fonction de script.


Sur cette fonction de script à moment donné j'ai une variable qui prend une certaine valeur; et c'est à ce moment là que je dois faire l'insertion de cette valeur dans ma base.

Voici la fonction que je lance dans mon fichier php; ne sachant trop quoi faire j'ai fais un return sur ma variable dans le dernier else...mais bien entendu ça ne marche pas car dans la page php il va évaluer le résultat sans attendre la fin de ma fonction.


Si je fais quelque chose comme var test=jouerClavier();
test sera undefined dans ma page php.

==> l'idée c'est de remplacer le return par une insertion de la valeur dans ma base directement via javascript...ou bien de renvoyer la valeur sur ma page php qui fera l'insertion.

Code: Tout sélectionner
function jouerClavier() {

   if(ballMiss!=stopGame)//tant qu'il reste des balles
   {
      chuteBalleClavier(getRandomArbitrary(0,501),0,ballTimer);
      if((cptBalle!=0)&&(cptBalle%10)==0)//si 10 balles lancé
      {
         ballTimer=ballTimer-100;//on augmente la vitesse de chute.
         delaiChute=delaiChute-200;
      }
      window.setTimeout(function(){jouerClavier();},delaiChute);
   }else {
      return scoreJoueur;
   }

}
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 07:03

par ampholyte » 30 Mar 2015, 16:42

Ok je comprends mieux le problème. Je pense pas que tu puisses faire comme cela car une fois la page chargée, il n'y a plus de php côté client simplement du HTML / CSS / JS.

Ce qu'il faudrait que tu fasses, c'est :

* un script PHP qui reçoit un paramètre le score et qui l'écrit dans la base.

* un appel Ajax vers le script PHP précédent qui envoit en paramètre le score du joueur

* Au retour de l'appel ajax, tu appelles un id correspondant à l'emplacement du score et tu lui appliques ton score.

Côté js :
Code: Tout sélectionner
document.getElementById('score').innerHTML = scoreJoueur


Côté HTML (donc dans ton fichier.php) :

Code: Tout sélectionner


Cela te donne le fonctionnement suivant :

1) La page se charge

2) Ton script est executé

3) A la fin de ton script, une requête AJAX est envoyée sur un script php au serveur permettant d'ajouter ce score en base

4) Dans la fonction de retour, tu affiches le score dans la zone de ta page


Ce qu'il faut retenir c'est que le PHP est interprété d'abord par le serveur web (apache par exemple) et ce que le client obtient est une page HTML.

Si tu fais le test, tu verras que tu ne verras plus trace du php dans tes fichiers au niveau de ton navigateur.

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 30 Mar 2015, 18:30

Ok je vais tester ça tout de suite; merci beaucoup !
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite