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

FIREFOX vs EXPLORER - SELECT et PHP

3 réponses
Avatar
none
Bonjour,
aprés plusieurs heures de recherches, je fais toujours Choux blanc.
Voilà mon problème :
j'ai un premier script (index.php) qui m'affiche un formulaire. Un
bouton "Choisir" affiche un deuxième formulaire (test_list.php) et
alimente le premier avec les valeurs sélectionnées. Cela marche nickel
avec Firefox (les champs du formulaire appelant sont correctement mis à
jour). Mais impossible de mettre à jour les champs <select> avec
explorer. Quelqu'un aurait-il une idée ?

En vous remerciant pour votre aide.

Voici les deux sources en question :
<!-- index.php -->
<html>
<body>
<script type="text/javascript">
function OuvrirFenetre(url,nom,details) {window.open(url,nom,details)}
</script>

<?php
// initialiser le tableau qui affiche le select
$tab_chiffre = array ('un', 'deux', 'trois', 'quatre', 'cinq');
?>
<form name='test' action='#'>
State : <select name="chiffre" >
<?php
for ($i = 0; $i < sizeof ($tab_chiffre); $i++) { echo
'<option>'.$tab_chiffre [$i]; }
?>
</select><br>
texte : <input type="text" name="texte" value="<?=$texte;?>"><br>
<input type="button" name="button" value="list"
onclick="javascript:OuvrirFenetre('test_list.php','popup','width=400,
height=400,top=0,left=0')">
</form>
</body>
</html>

<!-- test_list.php -->
<html>
<body>
<script language="javascript">
function process(_form, _form_dest)
// _form : form appelante - _form_dest : form de destination
{
for (var i=0; i < _form.choix.length;i++) {
if (_form.choix[i].checked) {
alert (_form.choix[i].value);
window.opener.document.forms[_form_dest].chiffre.value =
_form.choix[i].value;
window.opener.document.forms[_form_dest].texte.value =
_form.choix[i].value;
}
}
self.close(); }
</script>
<form name="choix" action="">
<input type="radio" name="choix" value="un">un<br>
<input type="radio" name="choix" value="deux">deux<br>
<input type="radio" name="choix" value="trois">trois<br>
<input type="radio" name="choix" value="quatre">quatre<br>
<input type="radio" name="choix" value="cinq">cinq<br>
<input type="button" value="choose" name="choose"
onclick="process(this.form,'test')">
</form>
</body>
<html>

3 réponses

Avatar
ASM
Bonjour,
aprés plusieurs heures de recherches, je fais toujours Choux blanc.
Voilà mon problème :
Cela marche nickel
avec Firefox (les champs du formulaire appelant sont correctement mis à
jour). Mais impossible de mettre à jour les champs <select> avec
explorer. Quelqu'un aurait-il une idée ?


je suis étonné que çà veuille bien fonctionner avec un navigateur
quelqu'il soit ...

dans la fonction process(_form, _form_dest)
j'eussions au moins précisé l'index de l'option du select chiffre
à modifier

window.opener.document.forms[_form_dest].chiffre.value =
_form.choix[i].value;


_form_dest = opener.document.forms[_form_dest];
for(var i=0;i<_form.choix.length;i++) {
_form_dest.chiffre[i].value = _form.choix[i].value;
// ou même (puisque les options originelles n'ont pas de value) :
_form_dest.chiffre[i].text = _form.choix[i].value;
}



--
Stephane Moriaux et son [moins] vieux Mac

Avatar
none

dans la fonction process(_form, _form_dest)
j'eussions au moins précisé l'index de l'option du select chiffre
à modifier

window.opener.document.forms[_form_dest].chiffre.value =
_form.choix[i].value;
Merci pour votre réponse. Mais en précisant l'index


(_form_dest.chiffre[i].value), ça ne marche plus du tout sous firefox :
l'index choisi sur le popup n'est plus mis à jour sur le form appelant.
En ce qui concerne mes recherches, j'ai trouvé sur un forum ce site qui
aborde les différences de traitements de javascript entre firefox et ie
(http://www-128.ibm.com/developerworks/web/library/wa-ie2mozgd), par
contre, je n'ai pas trouvé ce que je cherche : mettre à jour un <select>
simple en utilisant du javascript. Si quelqu'un a une idée...

J.C


Avatar
ASM


dans la fonction process(_form, _form_dest)
j'eussions au moins précisé l'index de l'option du select chiffre
à modifier

window.opener.document.forms[_form_dest].chiffre.value =
_form.choix[i].value;



Merci pour votre réponse. Mais en précisant l'index
(_form_dest.chiffre[i].value), ça ne marche plus du tout sous firefox :


oui, bon c'était pour indiquer

mais, en fait il s'agit de sélectionner un des champs

donc (et cette fois contrôlé) :
(methode ancienne qui passe à selected l'option voulue)

<script type"text/javascript">
function process(_form, _form_dest)
// _form : form appelante - _form_dest : form de destination
{
_form_dest = window.opener.document.forms[_form_dest]
for (var i=0; i < _form.choix.length;i++) {
if (_form.choix[i].checked) {
alert (_form.choix[i].value);
_form_dest.chiffre[i].selected = true;
_form_dest.texte.value = _form.choix[i].value;
}
}
self.close(); }
</script>



--
Stephane Moriaux et son [moins] vieux Mac