Variable php dans javascript

Résolu/Fermé
Signaler
Messages postés
41
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
20 septembre 2012
-
Messages postés
41
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
20 septembre 2012
-
Bonjour,
Comment pourrai-je récupérer la valeur d'une variable d'une page php à d'un code javascript?
Le code expliquera mieux mon problème:

$(document).ready(function () {
$.get("MaPage.php", { keyword: "linein"},
function(data){

// c'est la où je veux récupérer une variable de MaPage.php

});
});

Merci

14 réponses

Messages postés
339
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
29 février 2012
35
Tu peux insérer une varible PHP dans du javascript, mais pas l'inverse si c'est ta question, car php est exécuté AVANT js.
0
Messages postés
41
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
20 septembre 2012
2
merci pour ta réponse, en fait oui c'est ce que je cherche. là c'est MaPage.php qui est exécutée d'abord, elle contient une variable dont j'aurai besoin dans function(data){........}, comment je fais pour la recuperer??
0
Messages postés
339
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
29 février 2012
35
et bien avec un <?php echo $mavariable; ?> tout simplement. Le echo sera remplacé par sa vrai valeur puis le js sera éxécuté.
0
Messages postés
41
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
20 septembre 2012
2
j'ai essayé de faire cela:

$(document).ready(function () {
$.get("MaPage.php", { keyword: "linein"},
function(data){

var MaVariable;
MaVariable = <?php echo $mavariable; ?>
document.write(MaVariable);

});
});


mais là MaPage.php ne s'exécute plus.

je ne comprend plus pourquoi
0
Messages postés
339
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
29 février 2012
35
tu dois quand même remplacer $mavariable par ce que tu veux récuperer.
Tu as oublié le ; à la fin et si c'est une chaine n'oublie pas les "
MaVariable = "<?php echo $mavariable; ?>";
0
Messages postés
41
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
20 septembre 2012
2
merci pour tes réponses rapides,

en fait c'est ce que j'ai fait dans mon code:

$(document).ready(function () {
$.get("MaPage.php", { keyword: "linein"},
function(data){

var MaVariable;
MaVariable = "<?php echo $fichier; ?>";
document.write(MaVariable);

});
});


fichier est une variable dans MaPage.php $fichier=rand(0,100000);

rien ne se passe!!
0
Messages postés
339
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
29 février 2012
35
affiche le code source généré ac ton navigateur tu vera surement mieux l'erreur !
0
Messages postés
41
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
20 septembre 2012
2
l'erreur qu'il affiche c'est que ma variable fichier n'est pas définie dans la page où j'exécute js, ce qui les cas, ma variable est définie dans MaPage.php à laquelle je fais appel par js.
c'est ça mon problème d'ailleurs dés le début !
0
Messages postés
339
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
29 février 2012
35
et bien pour récupérer la valeur de mapage.php soit tu viens de cette page et tu la transmise en GET ou POST, soit tu as appelée cette page il y a longtemps et tu à créé une SESSION, soit tu inclus mapage.php avec un include('mapage.php').
Apres tu l'appel dans le js en fonction de méthode utilisée.
En espérant avoir bien compris cette fois :x
0
Messages postés
41
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
20 septembre 2012
2
concrétement je fais comment?? en codant c'est à dire stp
0
Messages postés
339
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
29 février 2012
35
bah le truc c'est que ta variable $fichier tu la définie dans mapage.php (si j'ai bien compris).
Donc en gros à un moment le client est sur cette page, et donc la variable est crée. Le but c'est de la conserver quand tu change de page.
Donc ma question, est ce que lorsque tu ouvre la page avec ton code tu viens de mapage.php ??
0
Messages postés
41
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
20 septembre 2012
2
voila le code de MaPage.php :

<?php
include_once("blabla.php");

$fichier = rand(0,100000);
$main= new medibench;
$main->creation($fichier);
$main->insertion($fichier);

?>

la page ci-dessus me permet la création d'un fichier excel dont le nom est le contenu de $fichier.


voila le code de l'autre page:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8"/>
<link type="text/css" href="css/benchmark.css" rel="stylesheet" />
<script type="text/javascript" src="pageFunctions/pageImports.js"></script>
<script type="text/javascript">

$(document).ready(function () {
$.get("MaPage.php", {keyword: 'linein'},
function(data){
$('#ajax-loader').html('<img src="css/images/apply-32.png"/>');
$('#loading').html('succes');

// là j'aimerai faire une redirection vers le excel crée par MaPage.php, j'ai donc besoin de
// son nom


});
});
</script>
</head>
<body>
<div id="container">
<div id="content">
<p>Veuillez patienter</p>
<p id="ajax-loader"><img src="css/images/ajax-loader.gif"/></p>
<p id="loading">en cours....</p>
</div>
</div>
</body>
</html>
0
Messages postés
339
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
29 février 2012
35
Bah pour que ton excel soit créé mapage.php doit être appelée quelque part. Par un include dans ta page par exemple.
0
Messages postés
41
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
20 septembre 2012
2
MaPage.php est bien appelée dans la ligne $.get("MaPage.php", {keyword: 'linein'},
le fichier excel est très bien créé lui aussi
le problème c'est juste la redirection vers ce fichier

Alors voila ce que je viens de faire:

je définie la variable fichier dans javascript au lieu de le faire dans MaPage.php, puis en appelant cette derniere je transmets la valeur de la variable comme ça :

<script type="text/javascript">
var fich = '2';
$(document).ready(function () {
$.get("benchmark_generation.php?fichier="+fich, { keyword: "linein"},
function(data){
$('#ajax-loader').html('<img src="css/images/apply-32.png"/>');
$('#loading').html('succes !');
document.location = "MonChemin"+fich+".xls";
});
});
</script>

dans Mapage.php je la récupere : $fichier = $_GET['fichier'];


et là ça a marché. Maintenant il me reste juste de connaitre l'équivalant de la fonction rand en javascript pour la definition de de la variable fich, ( ce n'est pas joli d'utiliser Math.round(Math.random()*100000) )
0