riyuhou
Messages postés16Date d'inscriptionjeudi 17 novembre 2005StatutMembreDernière intervention28 février 2011
-
24 déc. 2010 à 19:30
riyuhou
Messages postés16Date d'inscriptionjeudi 17 novembre 2005StatutMembreDernière intervention28 février 2011
-
27 déc. 2010 à 01:57
Bonjour à tous.
Je viens vers vous aujourd'hui car j'ai un petit souci qui commence à me prendre la tête.
Je vais essayer d'être le plus clair possible, en gros, le souci est que j'aimerais savoir si je peux modifier la valeur d'une variable d'un fichier js à partir d'un autre fichier.
Alors, voici comment se goupille mon basard.
J'ai mon index.php qui appel mon fichier .js comme ceci :
Dans ce fichier, j'ai écrit les function que j'utilise dans ma page index.php. L'une d'entre elle utilise une variable global.
var ma_variable=false;
function ma_fonction(){
$('#rea').slideToggle('slow');
$('#slideshow').css("display", "none");
if (ma_variable==false){
ma_variable=true;
}else{
ma_variable=false;
}
}
/* Si ça peut aider à comprendre, cette fonction gère le déroulement d'un élément. A chaque fois elle est appelé, elle change le statue de la variable pour que je sache si l'élément est déroulé ou pas.*/
Maintenant j'aimerais pouvoir modifier cette variable, à partir de mon index.php
J'ai essayé ceci :
<?php
if (isset($_SESSION['rea'])){
?>
[code=js]<script type="text/javascript">
$("#rea").css("display", "block");
var ma_variable=true;
</script>
Mais la variable ne se modifie pas. Alors est ce qu'il est au moins possible de le faire ? Si oui, ou est mon erreur ?
Voila, j'éspère que j'aurais été clair, si qq'un peut me faire un petit cadeau de noël en m'éclairant...ce serait sympa.
ps : j'ai essayé de contourner le problème en définissant directement la variable dans mon .js en fonction de l'affichage ou non d'un élément #rea de mon index.php ...mais la je sais pas si c'est même possible.
J'avais tenté ceci :
if($('#rea).css("display", "none")){
var ma_variable=false;
} else {
var ma_variable=true;
}
function ma_fonction(){
$('#rea').slideToggle('slow');
$('#slideshow').css("display", "none");
}
}
Inutile de vous dire que ce fut un échec cuisant .
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 26 déc. 2010 à 15:22
Bonjour les bubulles et les fois gras,
attention à la différence entre variable globale et variable locale
voici un petit code test pour voir la différence...
riyuhou
Messages postés16Date d'inscriptionjeudi 17 novembre 2005StatutMembreDernière intervention28 février 2011 27 déc. 2010 à 01:57
Merci à toi Petole Team, j'ai compris mon erreur. Alors que je voulais seulement modifier la variable global déjà existante, j'en crais une autre en mettant "var" devant son nom.
Bah du coup, j'ai adapté pour arriver à ceux que je voulais faire, à savoir modifié une variable global contenu dans mon fichier fonction.js à partir de mon index.
UN petit code/schema (inspirer du tien) pour voir ce que ça donne (pour ceux que ça interesse, on sait jamais, ça peut aider) :
Script 1 contenant les fonctions :
var variable = "Valeur de base";
//--------------------
function ModifInterne(){
alert( 'Valeur variable actuelle\nVariable = ' +variable);
variable = "La variable a ete modifie de l'interieur de la fonction";
alert( 'ModifInterne()\nVariable = ' +variable);
}
Et mon index.php ou je peux soit appeler la fonction (qui une fois effectuer modifiera la variable), ou soit affecter une nouvelle variable directement à partir de mon fichier index :
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test_variable2</title>
<script type="text/javascript" src="script_variable_1.js"></script>
<script type="text/javascript">
//--------------------
function ModifExterne(){
alert( 'variable de base\nVariable = ' +variable);
variable = "La variable a ete modifie à partir du fichier source";
alert( 'ModifExterne()\nVariable = ' +variable);
}
//---------------------
ModifInterne();
</script>
modifier la valeur de l'exterieur
modifier la valeur de l'interieur
<script type="text/javascript">
document.getElementById('bt_externe').onclick= function (){
ModifExterne();
}
document.getElementById('bt_interne').onclick= function (){
ModifInterne();
}
</script>