Enregistrer la valeur d'une liste déroulante

Résolu
rooloulou -  
Scalpweb Messages postés 1483 Statut Membre -
Bonjour,
voilà, j'essaye desesperement de passer la valeur selectionnée par l'utilisateur dans une variable que j'ai appelé valueSelect.
j'essaye ça:

<script language="JavaScript">
function setLine(value){
valueSelect = value;
}
</script>
<select name=line onchange="setLine(this.options[this.selectedIndex].value);">

et oooo drame cela ne marche pas....
merci infiniement de vos réponses,
éléonore.
A voir également:

10 réponses

Scalpweb Messages postés 1483 Statut Membre 43
 
Chez moi, ce code fonctionne :

<html>
<body>
 <script language="JavaScript">
var valueSelect;
function setLine(value){
valueSelect = value;
alert(valueSelect);
}
</script>
<select name=line onchange="setLine(this.options[this.selectedIndex].value);"> 
<option value="un">1</option>
<option value="deux">2</option>
</select>
</body>
</html>
0
Christounet Messages postés 1266 Statut Membre 1 392
 
Bonjour,

Le code ci-dessous doit faire ce que tu veux:

<script language="JavaScript">
function setLine(value)
{
  valueSelect = value;
}
</script>

<body>
<select name=line onchange="setLine(this.options[this.selectedIndex].value);" size="1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</body>


A plus
0
Scalpweb Messages postés 1483 Statut Membre 43
 
Ouai, le même que moi quoi :-p

Non mais je pense que son problème vient du fait que sa variable était déclarée à l'interieur de la fonction.

Elle était donc inutilisable une fois la fonction terminée.
0
rooloulou
 
merci beaucoup pour vos réponses,
c'est vraie que l'on dirait que la valueSelect est bien affectée, mais pour une raison que je comprends pas ça ne s'applique pas dans ma liste liée. je vous montre:

<script language="JavaScript">
var valueSelect;
function setLine(value){
valueSelect = value;
alert(valueSelect);
}
</script>
<select name=line onchange="setLine(this.options[this.selectedIndex].value);">
<OPTION>--- Choose your line ---</OPTION>
<%
try{
conn = DriverManager.getConnection(url,username,password);
Statement stmt = conn.createStatement();
ResultSet rs1= stmt.executeQuery("select lineName from line ");
while (rs1.next()) {
%>

<option value="<%=rs1.getString("lineName")%>"><%=rs1.getString("lineName")%></option>
<%
}
rs1.close();
stmt.close();
}catch(Exception e){
System.out.println(e.getMessage());
}
%>
</select>

<br/>
the station:
<select name=station>

<%
PreparedStatement stmt = conn.prepareStatement("SELECT stationName FROM stationLine WHERE lineName LIKE" +"(?)");
stmt.setString(1,valueSelect);
ResultSet rs1= stmt.executeQuery();
while (rs1.next()) {
%>

<option value="<%=rs1.getString("stationName")%>"><%=rs1.getString("stationName")%></option>
<%
}
rs1.close();
stmt.close();
}catch(Exception e){
System.out.println(e.getMessage());
}
%>
</select>

..c'est pas très lisible je suis désolée, mais je sais pas comment mettre ça dans une boite déroulante comme vous faite habituellement...
si quelqu'un a une idée pourquoi la deuxième liste ne tiens pas compte de la nouvelle valeur de valueSelect..
merci beaucoup
0
Scalpweb Messages postés 1483 Statut Membre 43
 
Pourrais -tu nous mettre le code html généré au final ?
0

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

Posez votre question
rooloulou
 
heu...je sais pas faire je crois.
là c'est du jsp intégré dans du html...mais j'imagine que le principe doit etre le meme...
je comprend pas pourquoi valueSelect, que j'ai affecté au tout début de mon code ne se modifie pas quand
je selectionne une valeur dans la première liste..
merci de ta réponse,
eleonore
0
Christounet Messages postés 1266 Statut Membre 1 392
 
Bonjour,

Je pense que l'erreur ne vient pas de la valeur de valueSelect mais dans le code utilisé pour lire la base de données, je pense que le code devrait être:

PreparedStatement stmt = conn.prepareStatement("SELECT stationName FROM stationLine WHERE lineName LIKE" +"'(?)'");
stmt.setString(1,valueSelect);
ResultSet rs1= stmt.executeQuery();



Il faut, je crois mettre la valeur à testé pour un LIKE entre deux '

A plus
0
rooloulou
 
en fait, jai initialisé au départ ma variable valueSelect par un
<% String valueSelect="central"; %>
je crois que le problème vient de là, comme si il y avait deux valueSelect distinctes, car quand je test dans
la deuxième liste déroulante en mettant
<OPTION><%=valueSelect%></OPTION>

la valueSelect reste toujours la valeur initial que j'avais mise, donc ne tiens pas compte de mes changements...
bizzard...
merci de ta réponse,
0
Scalpweb Messages postés 1483 Statut Membre 43
 
Ah non mais tu confonds tout !

Ta variable ValueSelect ASP n'ets pas du tout la même que ta variable Javascript !
0
rooloulou
 
ok ok,
je comprend mieux merci,
mais alors,
comment passer la valeur de la variable javascript dans ma variable ASP...
0
Scalpweb Messages postés 1483 Statut Membre 43
 
Tu remplaces la ligne :

var valueSelect;

par :


var valueSelect = <%=rs1.getString("lineName")%>;

Pour passer de l'ASP vers java.

Pour la contraire, il faut utiliser une variable d'URL.
PAr exemple, enfaisant :

http://www.test.com/index.asp?valueSelect=2

Tu pourras récupérer la variable dans ton code ASP.

Fais une recherche sur les variables GET et ASP.
0