Formulaire contenu de la case option

Le
Tantale
Je vais tenter d'être clair :
Sur la page http://www.jmrw.com/Chess/Bron/base.htm
(en fait baseb.htm)
J'ai le formulaire suivant.

<form>
<center>
<select name="" onChange="LoadNextPage(this.selectedIndex,0);Resset=1;">
<option>&nbsp;Bron,V - 1927-1&nbsp;
<option>&nbsp;Bron,V - 1927-2&nbsp;

<option>&nbsp;Bron,V - 1948-6
</select></center></form>
<center>

Grâce à membre du NG (ASM) je sais maintenant chosir une option de façcon
dynamique via un javascript.

Mais comment changer (si c'est possible) le texte de la case options ?. Il
doit être en accord avec le volet droit sélectionné de façon dynamique.

Merci beaucoup.

JMR
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ASM
Le #743784
Je vais tenter d'être clair :
Sur la page http://www.jmrw.com/Chess/Bron/base.htm
(en fait baseb.htm)
J'ai le formulaire suivant.

<form>
<center>
<option>&nbsp;Bron,V - 1927-1&nbsp;


<option value="quelque chose">&nbsp;Bron,V - 1927-1&nbsp;</option>

<option>&nbsp;Bron,V - 1927-2&nbsp;
---------
<option>&nbsp;Bron,V - 1948-6
</select></center></form>
<center>

Grâce à membre du NG (ASM) je sais maintenant chosir une option de façcon
dynamique via un javascript.

Mais comment changer (si c'est possible) le texte de la case options ?. Il
doit être en accord avec le volet droit sélectionné de façon dynamique.


Comme je ne comprends rien à ces cases et volets,
je vais traduire en html :
- le texte de l'option : pas fastoche à attraper ...
- le select :
s = parent.LeftSide.document.forms[0].elements[0];
- le volet droit = cadre (ou frame) de droite
parent.RightSide // avec page du cadre droite

Comme ça a déjà l'air de fonctionner, je ne comprends pas la question.

Si c'est pour monter une partie spéciale de la série :

parent.LeftSide.document.forms[0].elements[0].selectedIndex = 3;
LoadNextPage(parent.LeftSide.document.forms[0].elements[0].selectedIndex,0);
ou ... ? :
LoadNextPage(3,0);


Rappel de notions :
==================
// le select de ce code html donné ci-haut
var s = document.forms[0].elements[0];

// Ajouter un option à ce select
// 1) creer l'option
// 1.a) methode 1 :
var o = new Option('nouveau texte', 'nouvelle value');
// 1.b) methode 2 :
var o = new Option()
o.text = 'nouveau texte';
o.value = 'nouvelle value';
// 2) ajouter l'option
s.options[s.length] = o;
// ou directement :
s.options[s.length] = new Option('nouveau texte', 'nouvelle value');

// Modifier un des options
// par exemple, celui sélectionné :
var opt = s.options[s.selectedIndex];
opt.text = 'Decine-Charpieux, III - 2005/10';
opt.value = 'DC_III_2005-10.htm';


--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Tantale
Le #743783
Merci pour ces éléments de réponse.

Le but est simple : afficher par une commande javascript la page baseb avec
un volet droit choisi (baseg0.htm, ... ,baseg28.htm), ceci sans cliquer dans
la boîte de sélection mais par un javascript.
(En fait les baseg sont des études et je veux pouvoir les choisir de façon
aléatoire, sans cliquer sur la boîte de sélection).

Ce que je sais actuellement faire est seulement d'ouvrir la page baseb.htm
avec le volet baseg0.htm; ceci en lançant base.htm.

LoadNextPage(3,0) dans un javascript marche très bien pour afficher le
volet baseg3.htm mais le problème est que le texte de la boîte de sélection
ne bouge pas.

Le but est donc d'écrire dans la boîte de sélection le texte qui correspond
à la page baseg3.htm.

Parmi les éléments donnés, j'ai essayé par ex

<script language="Javascript" type="text/javascript">
parent.LeftSide.document.forms[0].elements[0]="ok"
</script>

sans résultat. Ce ne doit pas être une bonne syntaxe. (sans doute à faire
dresser les cheveux sur la tête des spécialistes)

J'ai aussi essayé d'utiliser le passage
// Modifier un des options
// par exemple, celui sélectionné :
var opt = s.options[s.selectedIndex];
opt.text = 'Decine-Charpieux, III - 2005/10';


mais cela me donne une erreur.

JMR

ASM
Le #743782
Merci pour ces éléments de réponse.

Le but est simple : afficher par une commande javascript la page baseb avec
un volet droit choisi (baseg0.htm, ... ,baseg28.htm), ceci sans cliquer dans
la boîte de sélection mais par un javascript.


Ayayïe !
je crois qu'on en a déjà parlé ?

(En fait les baseg sont des études et je veux pouvoir les choisir de façon
aléatoire, sans cliquer sur la boîte de sélection).


Ma fois, essayons :

à mettre je ne sais où ... par exemple le fichier de gauche ?
mettre dans le head :

<script type="text/javascript">
function init() {
var s = document.forms[0].elements[0];
var nb = s.length;
nb = Math.floor(Math.random()*nb);
s.selectedIndex = nb;
LoadNextPage(nb,0);
}
onload = init;
</script>


Essayer aussi pour la page de cadres 'base.htm' :

<HTML>
<script>
<!--
var loaded=0;
function init() {
var s = parent.LeftSide.document.forms[0].elements[0];
var nb = s.length;
nb = Math.floor(Math.random()*nb);
s.selectedIndex = nb;
parent.loaded = nb;
parent.LeftSide.LoadNextPage(nb,0);
}
//-->
</script>
<HEAD>
<TITLE>Vladimir Akimovich Bron</TITLE>
<meta content="Bron studies" />
</HEAD>
<FRAMESET border=0 cols42,* frameBorder=0 frameSpacing=0>
<FRAME src="baseb.htm" name="LeftSide"
onload="if(parent.loaded==0) parent.init();">
<NOFRAMES>
<BODY>
</BODY>
</NOFRAMES>
</FRAMESET>
</HTML>

Ce que je sais actuellement faire est seulement d'ouvrir la page baseb.htm
avec le volet baseg0.htm; ceci en lançant base.htm.


c'est çà le grand problème : arriver à décortiquer ce que fait base.htm

LoadNextPage(3,0) dans un javascript marche très bien pour afficher le
volet baseg3.htm mais le problème est que le texte de la boîte de sélection
ne bouge pas.


il suffit de faire/rajouter :
document.forms[0].elements[0].selectedIndex = 3;

Le but est donc d'écrire dans la boîte de sélection le texte qui correspond
à la page baseg3.htm.

Parmi les éléments donnés, j'ai essayé par ex

<script language="Javascript" type="text/javascript">
parent.LeftSide.document.forms[0].elements[0]="ok"


là tu dis que le select = ok
ce qui n'a ... aucun sens ... !

parent = la page de cadres
LeftSide = la frame nommée 'LeftSide'
document = grosso modo le body
forms[0] = le 1er formulaire
elements[0] = le 1er élément (du formulaire) donc le select

</script>

sans résultat. Ce ne doit pas être une bonne syntaxe. (sans doute à faire
dresser les cheveux sur la tête des spécialistes)

J'ai aussi essayé d'utiliser le passage
// Modifier un des options
// par exemple, celui sélectionné :
var opt = s.options[s.selectedIndex];
opt.text = 'Decine-Charpieux, III - 2005/10';


mais cela me donne une erreur.


Possible ... tout dépend des erreurs que tu fais :-)

Ce petit test-ci fonctionne :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>change option</title>
<script type="text/javascript">
function chge(texto) {
var s = document.forms[0].elements[0];
var opt = s.options[s.selectedIndex];
opt.text = texto;
opt.value = texto;
alert('verif :n'+s.options[s.selectedIndex].text+'n'+
s.options[s.selectedIndex].value);
}
</script>
</head>
<body>
<form onsubmit="return false;">
<select
onchange="alert('votre choix :n'+
this.options[this.selectedIndex].text+'n'+
this.options[this.selectedIndex].value);">
<option value="1">&nbsp;Bron,V - 1927-1&nbsp;
<option value="2">&nbsp;Bron,V - 1927-2&nbsp;
<option value="3">&nbsp;Bron,V - 1948-6
</select>
<button onclick="chge('Decine-Charpieux, III - 2005/10');">
Decine-Charpieux, III - 2005/10</button>
DC_III_2005-10.htm</button>
</form>
</body>
</html>



--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé


Tantale
Le #743781
LoadNextPage(3,0) dans un javascript marche très bien pour afficher le
volet baseg3.htm mais le problème est que le texte de la boîte de
sélection
ne bouge pas.


ASM :
il suffit de faire/rajouter :
document.forms[0].elements[0].selectedIndex = 3;


J'ai mis ça dans un script mais ça ne semble faire aucun effet.
Le texte dans la boîte de sélection ne bouge pas.

JMR


Tantale
Le #743780
Je crois que je viens de comprendre :

Il y deux "form" dans la page.

Celui avec les optrions qui m'intéresse est le deuxième .

J'ai donc mis document.forms[1].elements[0].selectedIndex = 3;

Et ça marche !

Merci beaucoup, pour cela et pour le reste que je vais utiliser les
prochains jours.

JMR
ASM
Le #743779
LoadNextPage(3,0) dans un javascript marche très bien pour afficher le
volet baseg3.htm mais le problème est que le texte de la boîte de
sélection
ne bouge pas.


ASM :
il suffit de faire/rajouter :
document.forms[0].elements[0].selectedIndex = 3;


J'ai mis ça dans un script mais ça ne semble faire aucun effet.
Le texte dans la boîte de sélection ne bouge pas.


heu ...
- où as-tu mis ça ?
- comment le lances-tu ?
Ça ne doit pouvoir fonctionner que dans l'un des fichiers 'baseb.htm'


--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé



Tantale
Le #743778
heu ...
- où as-tu mis ça ?
- comment le lances-tu ?
Ça ne doit pouvoir fonctionner que dans l'un des fichiers 'baseb.htm'


--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé


Oui pour le moment c'est dans le baseb (et je suis déjà content car c'est la
premieère fois que je vois une modification du texte de la boîte d'options)

Je suis en train d'essayer de l'adapter pour le mettre dans base avec le
script :

<script type="text/javascript">
LoadNextPage(2,0);
parent.LeftSide.document.forms[1].elements[0].selectedIndex = 2;
</script>

Mais là ça ne marche plus.

JMR


-----------

Le base.htm est :

<HTML>
<script>
<!--
var loaded=0;
//-->
</script>
<HEAD>
<TITLE>Vladimir Akimovich Bron</TITLE>
<meta content="Bron studies" />
</HEAD>
<FRAMESET border=0 cols42,* frameBorder=0 frameSpacing=0>
<script type="text/javascript">
LoadNextPage(2,0);
parent.LeftSide.document.forms[1].elements[0].selectedIndex = 2;
</script>
<NOFRAMES>
<BODY>
</BODY>
</NOFRAMES>
</FRAMESET>
</HTML>

ASM
Le #743777

Je suis en train d'essayer de l'adapter pour le mettre dans base avec le
script :

<script type="text/javascript">
LoadNextPage(2,0);


parent.LeftSide.LoadNextPage(2,0);

parent.LeftSide.document.forms[1].elements[0].selectedIndex = 2;
</script>

Mais là ça ne marche plus.

JMR


-----------

Le base.htm est :

<HTML>
<script>
<!--
var loaded=0;
//-->
</script>
<HEAD>
<TITLE>Vladimir Akimovich Bron</TITLE>
<meta content="Bron studies" />
</HEAD>
<FRAMESET border=0 cols42,* frameBorder=0 frameSpacing=0>
<script type="text/javascript">


parent.LeftSide.LoadNextPage(2,0);

parent.LeftSide.document.forms[1].elements[0].selectedIndex = 2;
</script>
<NOFRAMES>
<BODY>
</BODY>
</NOFRAMES>
</FRAMESET>
</HTML>



--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Tantale
Le #743776
Je ne vois pas le texte de la réponse

JMR
ASM
Le #743514

<script type="text/javascript">
LoadNextPage(2,0);


parent.LeftSide.LoadNextPage(2,0);


La fonction LoadNextPage() est normalement appelée dans le select du
fichier affiché dans le cadre de gauche.

Depuis une autre page il faut donc aller chercher cette fonction où elle
se trouve : parent.LeftSide



--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé


Publicité
Poster une réponse
Anonyme