Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Formulaire contenu de la case option

16 réponses
Avatar
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

10 réponses

1 2
Avatar
ASM
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 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é

Avatar
Tantale
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

Avatar
ASM
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' :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
<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" />
<link rel="shortcut icon" href="../Favicon.ico" />
</HEAD>
<FRAMESET border=0 cols42,* frameBorder=0 frameSpacing=0>
<FRAME src="baseb.htm" name="LeftSide"
onload="if(parent.loaded==0) parent.init();">
<FRAME src="baseg0.htm" name="RightSide">
<NOFRAMES>
<BODY>
<p>This page uses frames, but your browser doesn't support them.</p>
</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>
<button onclick="chge('DC_III_2005-10.htm');">
DC_III_2005-10.htm</button>
</form>
</body>
</html>



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


Avatar
Tantale
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


Avatar
Tantale
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
Avatar
ASM
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é



Avatar
Tantale
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 :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
<HTML>
<SCRIPT language="JavaScript" src="basej0.js"></SCRIPT>
<SCRIPT language="JavaScript" src="basej0c.js"></SCRIPT>
<script>
<!--
var loaded=0;
//-->
</script>
<HEAD>
<TITLE>Vladimir Akimovich Bron</TITLE>
<meta content="Bron studies" />
<link rel="shortcut icon" href="../Favicon.ico" />
</HEAD>
<FRAMESET border=0 cols42,* frameBorder=0 frameSpacing=0>
<FRAME src="baseb.htm" name="LeftSide">
<FRAME src="baseg2.htm" name="RightSide">
<script type="text/javascript">
LoadNextPage(2,0);
parent.LeftSide.document.forms[1].elements[0].selectedIndex = 2;
</script>
<NOFRAMES>
<BODY>
<p>This page uses frames, but your browser doesn't support them.</p>
</BODY>
</NOFRAMES>
</FRAMESET>
</HTML>

Avatar
ASM

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 :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
<HTML>
<SCRIPT language="JavaScript" src="basej0.js"></SCRIPT>
<SCRIPT language="JavaScript" src="basej0c.js"></SCRIPT>
<script>
<!--
var loaded=0;
//-->
</script>
<HEAD>
<TITLE>Vladimir Akimovich Bron</TITLE>
<meta content="Bron studies" />
<link rel="shortcut icon" href="../Favicon.ico" />
</HEAD>
<FRAMESET border=0 cols42,* frameBorder=0 frameSpacing=0>
<FRAME src="baseb.htm" name="LeftSide">
<FRAME src="baseg2.htm" name="RightSide">
<script type="text/javascript">


parent.LeftSide.LoadNextPage(2,0);

parent.LeftSide.document.forms[1].elements[0].selectedIndex = 2;
</script>
<NOFRAMES>
<BODY>
<p>This page uses frames, but your browser doesn't support them.</p>
</BODY>
</NOFRAMES>
</FRAMESET>
</HTML>



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

Avatar
Tantale
Je ne vois pas le texte de la réponse

JMR
Avatar
ASM

<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é


1 2