Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/05/2011, 18h33   #1
Invité de passage
 
Inscription : octobre 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 22
Points : 2
Points : 2
Par défaut SQL => PHP / Javascript

Bonjour,

Je sais que cette question est souvent posé car j'ai fait plusieurs forum où je trouve casiement les mêmes ligne de commande.

J'aimerai passer une variable PHP dans une fonction JavaScript.

Mon problème :
Mal grès plusieurs tentative je n'arrive pas à obtenir ce que je souhaite.

Il est possible que je ne vois pas une erreur qui empêche le fonctionnement.

Voici le code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
<?php
//Connection à la base de donnée.
include( "XXX.php" );
//récupération des informations.
$sql = 'SELECT Id, Heure FROM XXX';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result ($req);
 
//Mise dans les variables.
$Id = $data['Id'];
$Heure = $data['Heure'];
?>
 
<html>
<head>
<script type="text/javascript">
function getDt(){
	//dt=new Date();
var dt=("<? echo ($Heure); ?>");
 
hrs=dt.getHours();
min=dt.getMinutes();
sec=dt.getSeconds();
tm=" "+((hrs<10)?"0":"") +hrs+":";
tm+=((min<10)?"0":"")+min+":";
tm+=((sec<10)?"0":"")+sec+" ";
document.getElementById('display').innerHTML=tm;
setTimeout("getDt()",1000);
} 
</SCRIPT>
</head>
<body onLoad="getDt()">
<table border="0" align="left" cellspacing="1" cellpadding="1" >
<tr>
<td><p>Compteur : </p></td>
<td><div id="display"></div></td>
</tr>
</table>
</body>
</html>
Déja essayé :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
<script type="text/javascript">
var dt=("<? echo ($Heure); ?>");
</script>
 
<script type="text/javascript">
function getDt(){
.
.
.
</script>

Voilà, je n'attends pas un code tout fait mais plus une critique sur une erreur plausible.

Merci d'avance.

Cordialement.

Un novice ;-)
Hybride76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 18h59   #2
Membre du Club
 
Avatar de Freedolphin
 
Inscription : février 2006
Messages : 145
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 145
Points : 47
Points : 47
Tu as essayé en incluant le javascript dans le php (et non l'inverse) ?

Code :
1
2
3
echo '<script language="javascript">
var dt=$Heure;
</script>';
__________________
Le mieux n'est pas forcément l'ennemi du bien.
Freedolphin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 20h21   #3
Invité de passage
 
Inscription : octobre 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 22
Points : 2
Points : 2
Merci Freedauphin, mais cela ne fonctionne pas non plus.

Encore merci de t'être posé sur mon problème.

Cordialement.
Hybride76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 23h56   #4
Membre régulier
 
Inscription : juin 2008
Messages : 105
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 105
Points : 84
Points : 84
Salut essaies un peu:
Code :
var dt="<?php echo $Heure; ?>";
parce que si ton serveur n'est pas configuré pour accepter la notation 'courte' PHP (<? ?>) , tu dois mettre '<?php' pour commencer un bloc php.

Si ça ne marche pas, tu devrais afficher la valeur voulue par un echo pour voir si tu la reçois bien.

Alpha.
alpha232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 14h51   #5
Invité de passage
 
Inscription : octobre 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 22
Points : 2
Points : 2
Merci Alpha 232, malgré ta proposition cela ne fonctionne pas.

Encore merci pour ton aide.

Cordialement.
Hybride76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 14h55   #6
Nouveau Membre du Club
 
Inscription : juin 2009
Messages : 121
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 121
Points : 36
Points : 36
Code :
1
2
3
<script type="text/javascript">
var dt=  <?php echo $Heure; ?>;
</script>
misakilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 15h30   #7
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Que contient $Heure (valeur, type de variable, etc) ?

Ne marche pas, ne fonctionne pas ne sont pas des remarques constructives.
Regardez le code source de la page donnée et regardez ce qu'il y a d'écrit au niveau du JS, regardez si cela correspond à ce que vous vouliez et dites nous ce que c'est.

Si cela correspond à ce que vous vouliez, alors l'erreur se trouve dans le reste de votre JS. Sinon, c'est que ça vient de $Heure qui ne contient peut-être pas ce que vous souhaitez... Dites-nous en plus
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 19h27   #8
Invité de passage
 
Inscription : octobre 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 22
Points : 2
Points : 2
Merci Shikiryu,

effectivement tu as raison, ma réponse ne fut pas constructive, j'en suis désolé.

Plus d'informations :
La variable $Heure vient d'une base SQL. La valeur intégrée à cette variable est une base horaire (Heure du Type hh:mm:ss).

Je cherche à mettre cette heure dans la petite routine JS afin que cette dernier reprenne le calcul de l'heure normale.

La finalités sera d'utilisée la Variable $Heure et de la soustraire à l'heure actuelle pour réalisée une sorte de compteur.

Une Echo $Heure; au niveau de la zone PHP m'indique bien ce que j'ai dans ma base SQL.

J'espère avoir apporté un peu plus d'informations.

Cordialement.
Hybride76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 02h44   #9
Membre régulier
 
Inscription : juin 2008
Messages : 105
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 105
Points : 84
Points : 84
Je pense que j'ai compris ton souci.
La date que tu recois de la bd est de type string.
Tu récupère ce string ds js et tu essaies de le manipuler avec des fonction date/time, --> incompatibilité.
Voici ce que je propose
Code :
1
2
3
4
5
6
7
8
9
10
function getDt(){
	//dt=new Date();
var dt="<?php echo $Heure; ?>";
var dt1= dt.split(":");
tm=" "+((dt1[0]<10)?"0":"") +dt1[0]+":";
tm+=((dt1[1]<10)?"0":"")+dt1[1]+":";
tm+=((dt1[2]<10)?"0":"")+dt1[2]+" ";
document.getElementById('display').innerHTML=tm;
setTimeout("getDt()",1000);
}
En fait , on splitte le string au niveau des ":" et on récupère les valeurs heures/min/sec.


Dis-moi ce que tu en penses.
Alpha.
alpha232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 14h27   #10
Invité de passage
 
Inscription : octobre 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 22
Points : 2
Points : 2
Bonjour,

Tout d'abord merci Alph232, pour ton aide.
L'affichage de l'heure se fait correctement, mais celle-ci ne s'incrémente pas, elle reste fixe.

Afin quelle puisse "vivre" est il possible de décomposer par ségemnt hh/mm/ss avec le fonction gethours, getminutes et getsecondes? dans le but de renvoyer chaque parti dans une variable pour réaliser la fonction désirée.

Encore merci.

Je continue à " bidouiller " mon code pour trouver une solution.
Hybride76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 22h46   #11
Membre régulier
 
Inscription : juin 2008
Messages : 105
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 105
Points : 84
Points : 84
Salut,

Pour ce qui est de la décomposition, tu peux retrouver les valeurs "heures" ds dt1[0], "minutes" ds dt1[1] et "sec" ds dt1[2]...

Dans l'exemple précédent, la page affiche l'heure présente dans la base de données.

Veux tu qu'a partir de là, la date (ou l'heure ) s'incrémente automatiquement en fonction de l'heure locale?

Alpha.
alpha232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 17h26   #12
Invité de passage
 
Inscription : octobre 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 22
Points : 2
Points : 2
Bonjour,

Pour répondre à ta question Alpha 232, voici ce que je chercher à faire :
-> Récupérer l'information heure de la base.
-> Récupérer l'heure actuelle.
-> Faire la différence des deux et prendre le résultat comme base du compteur.

Bon je sais c'est tordu comme idée, mais bon.

Pour le moment j'ai bien récupérer les informations de la base. Je suis bloqué sur l'incrémentation qui ne se fait pas.

Encore merci pour ton aide.

Cordialement.
Hybride76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 17h29   #13
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par alpha232 Voir le message
Je pense que j'ai compris ton souci.
La date que tu recois de la bd est de type string.
Tu récupère ce string ds js et tu essaies de le manipuler avec des fonction date/time, --> incompatibilité.
Voici ce que je propose
Code :
1
2
3
4
5
6
7
8
9
10
function getDt(){
	//dt=new Date();
var dt="<?php echo $Heure; ?>";
var dt1= dt.split(":");
tm=" "+((dt1[0]<10)?"0":"") +dt1[0]+":";
tm+=((dt1[1]<10)?"0":"")+dt1[1]+":";
tm+=((dt1[2]<10)?"0":"")+dt1[2]+" ";
document.getElementById('display').innerHTML=tm;
setTimeout("getDt()",1000);
}
En fait , on splitte le string au niveau des ":" et on récupère les valeurs heures/min/sec.


Dis-moi ce que tu en penses.
Alpha.
tu sais que javascript gère les Date ?
https://developer.mozilla.org/fr/R%C...s_globaux/Date
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 21h48   #14
Invité de passage
 
Inscription : octobre 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 22
Points : 2
Points : 2
Par défaut Réponse & solution

Bonjour,

Je tenais à remercier tous ceux qui m'ont aidé pour mon problème.

J'ai enfin réussi à faire ce que je voulais, et tout fonctionne.

Code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
//Connection à la base de donnée.
include( "Connect.php" );
//récupération des informations.
$sql = 'SELECT Id, Heure FROM acces';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result ($req);
 
//Mise dans les variables.
$Id = $data['Id'];
$Heure = $data['Heure'];
?>
<html>
<head>
 
<SCRIPT LANGUAGE="Javascript">
var dt="<?php echo $Heure; ?>";
var dt1= dt.split(":");	
 
function getDt(){
// Récupération de l'heure venant de la BD puis conversion en secondes.	
hrs1=dt1[0]*3600;
min1=dt1[1]*60;
sec1=dt1[2]*1;
 
time1 = hrs1 + min1 + sec1;
 
// Récupération de l'heure actuelle puis conversion en secondes.	
dt=new Date();
hrs=dt.getHours()*3600;
min=dt.getMinutes()*60;
sec=dt.getSeconds()*1;
 
// Calcul de l'écart pour définir le "Zero" de départ.
time = hrs + min + sec;
time2 = time - time1;
 
// Conversion des secondes en hh:mm:ss.
hrs2=Math.floor((time2 / 3600));
min2=Math.floor(((time2 % 3600) / 60));
sec2=Math.floor((((time2 % 3600) % 60)));
 
// Définition de l'affichage.
tm=" "+((hrs2<10)?"0":"") +hrs2+":";
tm+=((min2<10)?"0":"")+min2+":";
tm+=((sec2<10)?"0":"")+sec2+" ";
 
	document.getElementById('display').innerHTML=tm;
setTimeout("getDt()",1000);
}
</SCRIPT>
</head>
 
<body onLoad="getDt()">
<table border="0" align="left" cellspacing="1" cellpadding="1" >
<tr>
<td><p>Syst&eacute;me : </p></td>
<td><div id="display"></div></td>
</tr>
</table>
</body>
</html>

Si vous constatez des erreurs ou des améliorations n'hésitez pas à faire signe.

Toutes remarques et / ou critiques sera le bienvenu, cela permet de progresser.

Encore merci à tous.

Cordialement.
Hybride76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h25.


 
 
 
 
Partenaires

Hébergement Web