Probléme variables!

klem14 Messages postés 20 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 25 mai 2004 - 4 mai 2004 à 09:16
Jsman Messages postés 264 Date d'inscription jeudi 31 juillet 2003 Statut Membre Dernière intervention 12 juillet 2005 - 18 mai 2004 à 19:48
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

Jsman Messages postés 264 Date d'inscription jeudi 31 juillet 2003 Statut Membre Dernière intervention 12 juillet 2005
4 mai 2004 à 17:34
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 !
0
klem14 Messages postés 20 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 25 mai 2004
5 mai 2004 à 09:11
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?
0
Jsman Messages postés 264 Date d'inscription jeudi 31 juillet 2003 Statut Membre Dernière intervention 12 juillet 2005
6 mai 2004 à 19:00
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 !
0
klem14 Messages postés 20 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 25 mai 2004
10 mai 2004 à 09:34
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
0

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

Posez votre question
Jsman Messages postés 264 Date d'inscription jeudi 31 juillet 2003 Statut Membre Dernière intervention 12 juillet 2005
13 mai 2004 à 20:56
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 !
0
klem14 Messages postés 20 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 25 mai 2004
18 mai 2004 à 10:26
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.
0
Jsman Messages postés 264 Date d'inscription jeudi 31 juillet 2003 Statut Membre Dernière intervention 12 juillet 2005
18 mai 2004 à 19:48
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 !
0
Rejoignez-nous