Probléme variables!

Signaler
Messages postés
20
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
25 mai 2004
-
Messages postés
264
Date d'inscription
jeudi 31 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2005
-
Salut à tous:

J'ai un problème au niveau des variables de javascript.
Elle vient du problème entre variable globale et variable locale.

<script language="javascript">
// une simple réservation de variable
var remun="5";

function change() {
ind=document.formulaire.abon.selectedIndex;
valeur=document.formulaire.abon.options[ind].value;
remun=valeur;
alert(remun);
}
</script>

Le problème c'est qu' en sortant de la fonction, la variable "remun" n'a pas changer.

UN peu d'aide SVP

7 réponses

Messages postés
264
Date d'inscription
jeudi 31 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2005

Ca fait quoi, si tu mets remun = "19"
par exemple ?

je pense que c'est à cause de cette ligne :

valeur=document.formulaire.abon.options[ind].value;

Tu devrais nous montrer aussi ton body...

Jsman
8-)

http://arcane21.free.fr/jsman/
Des jeux, des utilitaitres, des programmes !
Messages postés
20
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
25 mai 2004

Ben si je met "remun=19", même après l'execution de la fonction
change, la variable remun garde la valeur 19, ce qui ne devrait pas être le cas.

quant au body le voici (asp):

<%
Set conn = Server.CreateObject("ADODB.Connection")
' chaine de connexion
connstring="DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & Server.MapPath(".") & "/../../emsrem.mdb"
' ouverture de la connexion
conn.Open connstring
'ouverture d'un recordset
SQL="select * from remuneration"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL,conn,3,3
%>

<center>Insertion d'un nouveau abonnement
</center>
<form target=\"_self\" name=\"formulaire\" method=\"post\" >
----

Nom abonnement,
<select name="abon"
onChange="javascript:change()">
<% rs.MoveFirst
While (NOT rs.EOF) %>
<option value="<%=(rs.Fields.Item("code_rem").Value)%>"><%=(rs.Fields.Item("libelle_rem").Value)%></option>
<% rs.MoveNext
Wend
%>
</select>,

<% code=clng(response.write(\"<script language='Javascript'>document.write(remun);</script>\"))

%>
----

Rémunération,
" align="right" size="5">Euros,

----

<center></center>,
<center></center>,

</form>

<%

'fermeture du recordset et de la base
rs.close
set rs=nothing
conn.close
set conn=nothing
%>

Je ne vois vraiment pas d'ou provient l'erreur?
Messages postés
264
Date d'inscription
jeudi 31 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2005

Je ne m'y connais pas du tout en asp mais cette page sur les selects pourrais t'être utile !

Jsman
8-)

http://arcane21.free.fr/jsman/
Des jeux, des utilitaitres, des programmes !
Messages postés
20
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
25 mai 2004

J'ai fais de test et ça n'as rien à voir avec l'ASP encore moins avec les formulaires. C'est au niveau de la partie javascript qui y a un problème.Donc si quelqu'un connait la solution relatives aux variables, qu'il n'hésite pas.
merci
Messages postés
264
Date d'inscription
jeudi 31 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2005

Ma réponse avec un peu de retard !

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Nouvelle page 1</title>
</head>

<script language="javascript">
// une simple réservation de variable
var remun="5";

function change() {
ind=document.formulaire.abon.selectedIndex;
valeur=document.formulaire.abon.options[ind].value;
remun=valeur;
alert(remun);
}
</script>

<form target="_self" name="formulaire" method="post" >
<select name="abon"
onChange="javascript:change()">
<option value="lfd">1</option>
<option value="lfqsds">2</option>
<option value="azerlfd">3</option>
</select>

</form>

</html>

Avec çe script, ça marche, j'obtient bien la valeur de l'option choisie (lfd,lfqsds ou azerlfd)

Essaye de trouver réponse à ton problème !

Jsman
8-)

http://arcane21.free.fr/jsman/
Des jeux, des utilitaitres, des programmes !
Messages postés
20
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
25 mai 2004

Merci pour ta réponse.

Le seule problèmes c'est que ça marche pas vraiment.

Tu obtiens bien la valeur choisi, mais c'est uniquement parce que tu à placer "alert(remun);" dans la fonction.

Alors que si tu place la même en fin d'instrcution avant , ben tu t'apercevras qu'il y a toujours un problème de passage de valeur entre la varaible globale et la variable locale.
Messages postés
264
Date d'inscription
jeudi 31 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2005

Moi, je trouve que la valeur se passe bien, regarde ce script :

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Nouvelle page 1</title>
</head>

<script language="javascript">
// une simple réservation de variable
var remun="5";
function change() {
ind=document.formulaire.abon.selectedIndex;
valeur=document.formulaire.abon.options[ind].value;
remun=valeur;
}
</script>
<script>
function alerterlavariableremun()
{
alert(remun)
}
</script>

<form target="_self" name="formulaire" method="post" >
<select name="abon"
onChange="javascript:change()">
<option value="lfd">1</option>
<option value="lfqsds">2</option>
<option value="azerlfd">3</option>
</select>

</form>

</html>

Jsman
8-)

http://arcane21.free.fr/jsman/
Des jeux, des utilitaitres, des programmes !