Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
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 04/01/2008, 16h25   #1
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 175
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 175
Points : 28
Points : 28
Par défaut [PHP-JS] utilisation d'une variable php dans du code javascript

Bonjour,

comme l'objet l'indique, je cherche à utiliser une variable php dans mon code écrit en javascript. Ici, en l'occurence, et pour l'exemple, l'afficher dans une fenêtre d'alerte.


Code :
1
2
3
4
5
6
7
8
<? $message=abc;echo $message;?>
<script>
var maFonction = function(message) {
  alert(message);
}
</script>
 
<script>maFonction($message);</script>
Y'a-t-il moyen de réaliser ça directement?
sinon, comment faire autrement?

Mathieu
Mathieu72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 21h06   #2
Invité régulier
 
Inscription : février 2006
Messages : 25
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 25
Points : 9
Points : 9
Bonsoir,

et si tu fais :
Code :
1
2
3
4
5
6
7
8
9
 
<? $message=abc;echo $message;?>
<script>
var maFonction = function(message) {
  alert(message);
}
</script>
 
<script>maFonction(<? echo $message ?>);</script>
coachllb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 21h19   #3
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
plutôt

Code php-mixte :
1
2
3
4
5
6
7
8
9
 <?php $message=abc;echo $message;?>
<script type="text/javascript">
var maFonction = function(message) {
  alert(message);
}
</script>
 
<script type="text/javascript">maFonction('<?php echo $message ?>');</script>
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2008, 17h00   #4
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 175
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 175
Points : 28
Points : 28
Il reste un petit problème...
voici comment je voudrais employer les choses:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<? $path="http://monsite.fr/";
?>
<head>
<script type="text/javascript">
		function redirectionAvecDelai(finchemin)
		{
			window.setTimeout(redirectionSansDelai(finchemin), 5000);
		}
 
		function redirectionSansDelai(finchemin)
		{	
		lien="<?php echo $path; ?>"+finchemin;
		alert(lien);
		  window.location.href="<?php echo $path; ?>"+finchemin;
		}
</script>
</head>
 
<script> redirectionAvecDelai("accueil.php")</script>

Avec ce code, la page voulue s'ouvre bien (http://monsite.fr/accueil.php), mais sans délai de 5 secondes... en fait, même en ne gardant qu'une fonction sur les deux, le navigateur produit une erreur... Voyez-vous pourquoi? que changer au code?

Cordialement
Mathieu
Mathieu72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2008, 17h06   #5
Membre éclairé
 
Avatar de makmaoui
 
Développeur Web
Inscription : mai 2007
Messages : 282
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2007
Messages : 282
Points : 361
Points : 361
Essaye ceci :
Code :
1
2
3
4
5
6
7
8
 
<script type="text/javascript">
		function redirectionAvecDelai(finchemin)
		{
			window.setTimeout('redirectionSansDelai('+finchemin+')', 5000);
		}
 
</script>
makmaoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2008, 17h33   #6
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 175
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 175
Points : 28
Points : 28
Le code ressemblerait donc à ceci, n'est-ce pas?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<? $path="http://light72.free.fr/";
?>
<head>
<script type="text/javascript">
 
		function redirectionSansDelai(finchemin)
		{	
		lien="<?php echo $path; ?>"+finchemin;
		alert(lien);
		  window.location.href="<?php echo $path; ?>"+finchemin;
		}
 
 
		function redirectionAvecDelai(finchemin)
		{
			window.setTimeout('redirectionSansDelai('+finchemin+')', 5000);
		}
</script>
</head>
petite phrase
 
<script> redirectionAvecDelai('accueil.php')</script>

Cette fois, il y a bien un délai de 5 secondes de marqué, mais ensuite, le navigateur produit une erreur (fatale!) et l'utilisateur n'est même pas rédirigé...
Ai-je bien recopié? Une autre erreur?

Mathieu
Mathieu72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2008, 18h21   #7
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
L'erreur ?
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2008, 19h37   #8
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 175
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 175
Points : 28
Points : 28
En fait, j'ai compris... grâce à un autre forum!
window.setTimeout prend comme premier argument un string.
Il faut donc écrire:
Code :
1
2
3
4
function redirectionAvecDelai(finchemin)
		{
			window.setTimeout("redirectionSansDelai('"+finchemin+"')", 5000);
		}
et ça fonctionne!!!

Merci à tous
Mathieu72 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 17h14.


 
 
 
 
Partenaires

Hébergement Web