OVH Cloud OVH Cloud

Selection dans une liste déroulante

11 réponses
Avatar
Mag
Bonjour à tous

Voilà mon problème. J'ai trouvé une fonction pour afficher une liste box
différente suivant le bouton radio coché. Là pas de problème. Voilà le
code : (bien sur il y a 3 fois cette fonction car 3 liste box possible)

function person(form,list){
list.options.length=0;
var o=new Option("Sélectionnez...","");
form.subcat.options[form.subcat.options.length]=o;
<?
include('../connect.php');
$sql = "SELECT fr FROM table ORDER by fr";
$result = mysql_query($sql) or die('Erreur SQL
!<br>'.$sql.'<br>'.mysql_error());
while($row = mysql_fetch_assoc($result)){?>
var o=new Option("<? echo $row[fr];?>","<? echo $row[fr];?>");
form.subcat.options[form.subcat.options.length]=o;
<?}
mysql_close();?>
}

Pour mon formulaire de modification j'aimerai que l'option enregistré
dans la table par l'utilisateur soit sélectionnée (selected) mais je ne
sais pas comment l'intégrer dans le javascript.

J'espère que vous serez m'aider. Bonne journée
Merci d'avance,

Mag

10 réponses

1 2
Avatar
ASM

J'espère que vous serez m'aider. Bonne journée
Merci d'avance,


tu t'es trompé de ng
c'est du ressort du php (là à coté, l'autre ng)

suffit que le php écrive ce qu'il faut au bon endroit

<option value="trucmuche" selected>truc muche</option>

qu'est-ce que çà à voir avec le JavaScript ?

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Mag
J'aimerai l'intégrer dans la fonction js

J'espère que vous serez m'aider. Bonne journée
Merci d'avance,


tu t'es trompé de ng
c'est du ressort du php (là à coté, l'autre ng)

suffit que le php écrive ce qu'il faut au bon endroit

<option value="trucmuche" selected>truc muche</option>

qu'est-ce que çà à voir avec le JavaScript ?




Avatar
ASM
J'aimerai l'intégrer dans la fonction js


Quelle fonction JS ?

je n'ai vu que du charabia en php au mileu de trucs semblant du JS
sans aucun sens sans le context.

Qu'est-ce que : 'form.subcat.options' ?

M'enfin si tu sais quel option a été choisi
(et tu le sais, ou tt au moins ton php)
il suffit de s'en servir
et faire écrire ce fameux 'selected' quand désiré :

var o=new Option("<? echo $row[fr];?>","<? echo $row[fr];?>");
form.subcat.options[form.subcat.options.length]=o;
<? if($result_du_formulaire == $row(fr) ?>
form.subcat.options[form.subcat.options.length-1].selected='selected';

à toi de te débrouiller pour obtenir ce $result_du_formulaire
(option de 'list' sélectionné lors du submit ?)

Mais ... sincèrement je ne vois pas pourquoi
il faut faire écrire une fonction JavaScript de création de liste
(très vilaine de surcroit)
Ne serait-il pas aussi simple de faire écrire
directement le select par le php ?


à noter :

'form' dans ton code doit absolument représenter le formulaire

document.forms[form]






J'espère que vous serez m'aider. Bonne journée
Merci d'avance,



tu t'es trompé de ng
c'est du ressort du php (là à coté, l'autre ng)

suffit que le php écrive ce qu'il faut au bon endroit

<option value="trucmuche" selected>truc muche</option>

qu'est-ce que çà à voir avec le JavaScript ?





--
Stephane Moriaux et son [moins] vieux Mac



Avatar
Mag
ok, merci je vais voir ça. C'est un script en javascript que j'ai
trouvé. En fait la liste est différente selon le input radio que l on
choisi juste avant dans le formulaire et c'est pour ça que j'ai mis du
js. Je ne savais pas où intégrer le php pour 'selected'.
En tout cas merci pour ta réponse


J'aimerai l'intégrer dans la fonction js


Quelle fonction JS ?

je n'ai vu que du charabia en php au mileu de trucs semblant du JS
sans aucun sens sans le context.

Qu'est-ce que : 'form.subcat.options' ?

M'enfin si tu sais quel option a été choisi
(et tu le sais, ou tt au moins ton php)
il suffit de s'en servir
et faire écrire ce fameux 'selected' quand désiré :

var o=new Option("<? echo $row[fr];?>","<? echo $row[fr];?>");
form.subcat.options[form.subcat.options.length]=o;
<? if($result_du_formulaire == $row(fr) ?>
form.subcat.options[form.subcat.options.length-1].selected='selected';

à toi de te débrouiller pour obtenir ce $result_du_formulaire
(option de 'list' sélectionné lors du submit ?)

Mais ... sincèrement je ne vois pas pourquoi
il faut faire écrire une fonction JavaScript de création de liste
(très vilaine de surcroit)
Ne serait-il pas aussi simple de faire écrire
directement le select par le php ?


à noter :

'form' dans ton code doit absolument représenter le formulaire

document.forms[form]






J'espère que vous serez m'aider. Bonne journée
Merci d'avance,



tu t'es trompé de ng
c'est du ressort du php (là à coté, l'autre ng)

suffit que le php écrive ce qu'il faut au bon endroit

<option value="trucmuche" selected>truc muche</option>

qu'est-ce que çà à voir avec le JavaScript ?










Avatar
ASM
ok, merci je vais voir ça. C'est un script en javascript que j'ai
trouvé. En fait la liste est différente selon le input radio que l on
choisi juste avant dans le formulaire et c'est pour ça que j'ai mis du
js. Je ne savais pas où intégrer le php pour 'selected'.
En tout cas merci pour ta réponse


soit c'est tout en JS
et tu dois avoir des arrays des listes à afficher
et, suivant le bouton radion cliqué, c'est l'un ou l'autre array
qui est employé pour créer le select et ses options correspondants

L'histoire du selected, je ne la comprends pas trop
qu'est-ce qui est sélectionné ?
- un truc dans un autre select ? (avant le radio-bouton)
- un des options du nouveau select ?
celui qui a la même valeur que le bouton-radio ?

<form name="monForm" action="mon.php">
<p>Henri : <input type=radio value="Henri" name="monRadio"
onclick="person('monForm','array_1',this.value);" />
<p>Fruit : <input type=radio value="fruit" name="monRadio"
onclick="person('monForm','array_2',this.value);" />
<p><select name="subcat">
<option value="chapignon">champignon
<option value="fruit">fruit
</select>
<input type=submit value="GO" />
</form>

<script type="text/javascript">
// arrays à faire écrire par le php si necessaire
var array_1 = new Array('Andre','Claude','Henri','Pierre');
var array_2 = new Array('champignon','fruit');

function person(form,list,quoi) {
form = document.forms[form].elements['subcat'].options;
form.length=0;
for(var i=0;i<list.length;i++) {
form[form.length] = new Option(list[i],list[i]);
if(list[i]==quoi) form[form.length-1].selected;
}
}
</script>

Avatar
Mag
Super, ça fonctionne mais j'aurai encore une autre question toujours
pour le même formulaire. En fait, j'ai 3 fonctions presque identique que
celle du dessous (juste la requête qui change et son nom). Chaque bouton
radio (3) à un onClick vers sa fonction. Mais dans mon formulaire de
modification le radio est bien coché mais les informations de la liste
ne sont pas là (normal c'est un onClick). Donc j'aimerai savoir comment
faire pour que le choix soit là sens devoir cliquer.
J'espère que je me suis pas trop mal expliquée et que vous serez m'aider.

Voilà la fonction qui fonctionne avec le selected
function person(form,list){
list.options.length=0;
var o=new Option("Sélectionnez...","");
form.subcat.options[form.subcat.options.length]=o;
<?
include('../connect.php');
$sql = "SELECT fr FROM table ORDER by fr";
$result = mysql_query($sql) or die('Erreur SQL
!<br>'.$sql.'<br>'.mysql_error());
while($row = mysql_fetch_assoc($result)){?>
var o=new Option("<? echo $row[fr];?>","<? echo $row[fr];?>");
form.subcat.options[form.subcat.options.length]=o;
<? if($row[fr]==$row1[subcat]){ ?>
form.subcat.options[form.subcat.options.length-1].selected='selected';
<?}}
mysql_close();?>
}
Merci beaucoup ASM
Bonne journée
Mag
Avatar
ASM

bon ce serait bien que tu te décides à quoter comme il faut

là je ne sais à quoi tu réponds ...


Super, ça fonctionne mais j'aurai encore une autre question toujours


supposons que le formulaire est nommé : 'monForm'
qu'il contient les radios-boutons nommés : 'monrad'

essayer en ajoutant en fin du JS de la page :

function affiche() {
var R = document.forms['monForm'].elements['monrad'];
for(var i=0;i<R.length;i++)
if(R[i].checked) eval(R[i].onclick);
}
onload = affiche;


ou, qui est bp mieux, ajouter en fin du JS de la page :

onload = function() { person(form,list); };

en remplaçant form et list par ce qu'il faut (du bouton checké)

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Thibaut Allender
bon ce serait bien que tu te décides à quoter comme il faut


j'allais le dire, mais j'aurais en plus donné un indice :
http://giromini.org/usenet-fr/repondre.html

--
thibaut allender | http://capsule.org | http://photo.capsule.org

Avatar
Mag
bon ce serait bien que tu te décides à quoter comme il faut


j'allais le dire, mais j'aurais en plus donné un indice :
http://giromini.org/usenet-fr/repondre.html

Ok, je vais lire ça avant de reposer une question.

Désolée et merci pour le lien
a+


Avatar
ASM

bon ce serait bien que tu te décides à quoter comme il faut


http://giromini.org/usenet-fr/repondre.html


Je me demandais bien quand tu allais te décider !
Merci

--
Stephane Moriaux et son [moins] vieux Mac


1 2