Variable php dans javascript

Résolu/Fermé
shawky7287 Messages postés 41 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 20 septembre 2012 - 25 févr. 2010 à 14:47
shawky7287 Messages postés 41 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 20 septembre 2012 - 26 févr. 2010 à 15:13
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

bloodchecker Messages postés 339 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 29 février 2012 35
25 févr. 2010 à 15:03
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
shawky7287 Messages postés 41 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 20 septembre 2012 2
25 févr. 2010 à 15:12
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
bloodchecker Messages postés 339 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 29 février 2012 35
25 févr. 2010 à 15:16
et bien avec un <?php echo $mavariable; ?> tout simplement. Le echo sera remplacé par sa vrai valeur puis le js sera éxécuté.
0
shawky7287 Messages postés 41 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 20 septembre 2012 2
25 févr. 2010 à 15:26
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bloodchecker Messages postés 339 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 29 février 2012 35
25 févr. 2010 à 15:29
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
shawky7287 Messages postés 41 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 20 septembre 2012 2
25 févr. 2010 à 15:46
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
bloodchecker Messages postés 339 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 29 février 2012 35
25 févr. 2010 à 15:49
affiche le code source généré ac ton navigateur tu vera surement mieux l'erreur !
0
shawky7287 Messages postés 41 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 20 septembre 2012 2
25 févr. 2010 à 16:18
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
bloodchecker Messages postés 339 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 29 février 2012 35
25 févr. 2010 à 16:28
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
shawky7287 Messages postés 41 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 20 septembre 2012 2
26 févr. 2010 à 13:22
concrétement je fais comment?? en codant c'est à dire stp
0
bloodchecker Messages postés 339 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 29 février 2012 35
26 févr. 2010 à 13: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
shawky7287 Messages postés 41 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 20 septembre 2012 2
26 févr. 2010 à 14:21
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
bloodchecker Messages postés 339 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 29 février 2012 35
26 févr. 2010 à 15:00
Bah pour que ton excel soit créé mapage.php doit être appelée quelque part. Par un include dans ta page par exemple.
0
shawky7287 Messages postés 41 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 20 septembre 2012 2
26 févr. 2010 à 15:13
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