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

select multiple dans Ajax

5 réponses
Avatar
Saad Saad
Bonjour,

J'ai un select multile

<select name="liste[]" multiple>
</select>

J'ai un problème pour passer ce <select> (toutes ses valeurs) dans une
requête Ajax.

Dans un submit normal, cela fonctionne sans problème

merci

5 réponses

Avatar
ASM
Bonjour,

J'ai un select multile

<select name="liste[]" multiple>
</select>

J'ai un problème pour passer ce <select> (toutes ses valeurs) dans une
requête Ajax.


ne faut-il pas passer une boucle sur le select afin d'en récupérer les
options selected ?

Dans un submit normal, cela fonctionne sans problème


ça ne veut rien dire, qu'est-ce qui fonctionne sans pb ?


--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Saad Saad
Bonjour,

J'ai un select multile

<select name="liste[]" multiple>
</select>

J'ai un problème pour passer ce <select> (toutes ses valeurs) dans une
requête Ajax.


ne faut-il pas passer une boucle sur le select afin d'en récupérer les
options selected ?

Dans un submit normal, cela fonctionne sans problème


ça ne veut rien dire, qu'est-ce qui fonctionne sans pb ?




submit normal,
cela veux dire que lorsque je submit mon form (Post) je récupère (php)
dans un tableau toutes les lignes sélectionner de mon select.

Pour la boucle avant, j'y avais penser, mais je voulais savoir si
c'était possible simplement.

merci


Avatar
ASM
J'ai un select multile

<select name="liste[]" multiple>
</select>

J'ai un problème pour passer ce <select> (toutes ses valeurs) dans
une requête Ajax.


ne faut-il pas passer une boucle sur le select afin d'en récupérer les
options selected ?

Dans un submit normal, cela fonctionne sans problème


ça ne veut rien dire, qu'est-ce qui fonctionne sans pb ?


submit normal,
cela veux dire que lorsque je submit mon form (Post) je récupère (php)
dans un tableau toutes les lignes sélectionner de mon select.

Pour la boucle avant, j'y avais penser, mais je voulais savoir si
c'était possible simplement.


Je ne sais pas.
Le JS, je ne connais pas, juste je le bidouille (de préf à la mode NS4)
Alors, les trucs domesques et ajaqusiens ça m'est un peu moins acquis :-)

Pour le moment de mes expériences du XMLHttpRequest, je lui envoie des
urls complètes (avec variables attachées) et en GET.
Et je ne sais pas trop ce que c'est censé faire en POST.

Dans la mesure ou l'envoi 'normal', comme précisé, n'affuble pas - comme
il le ferait en 'get' - l'url de variables attachées telles que :
&truc=un&truc=trois&truc=dixneuf
pour notre select nommé 'truc'

à mon idée, en JS (de base, dom ou ajax) on doit se débrouiller pour
reconstituer cette suite grace à la collection des éléments nommés
'truc' du form

document.form['x'].elements['truc'][0].value = 'un';
...
document.form['x'].elements['truc'][2].value = 'trois';
... / ...
document.form['x'].elements['truc'][18].value = 'dixneuf';

Maintenant, il faudrait voir comment est bâti ton XMLHttpRequest ...
- capte t-il toute l'url d'envoi ?
- si oui, qu'en fait-il ?
- s'il s'adresse à du php, le php sait quoi faire de tructrucruc ?


--
Stephane Moriaux et son [moins] vieux Mac



Avatar
Saad Saad
J'ai un select multile

<select name="liste[]" multiple>
</select>

J'ai un problème pour passer ce <select> (toutes ses valeurs) dans
une requête Ajax.


ne faut-il pas passer une boucle sur le select afin d'en récupérer
les options selected ?

Dans un submit normal, cela fonctionne sans problème


ça ne veut rien dire, qu'est-ce qui fonctionne sans pb ?


submit normal,
cela veux dire que lorsque je submit mon form (Post) je récupère (php)
dans un tableau toutes les lignes sélectionner de mon select.

Pour la boucle avant, j'y avais penser, mais je voulais savoir si
c'était possible simplement.


Je ne sais pas.
Le JS, je ne connais pas, juste je le bidouille (de préf à la mode NS4)
Alors, les trucs domesques et ajaqusiens ça m'est un peu moins acquis :-)

Pour le moment de mes expériences du XMLHttpRequest, je lui envoie des
urls complètes (avec variables attachées) et en GET.
Et je ne sais pas trop ce que c'est censé faire en POST.

Dans la mesure ou l'envoi 'normal', comme précisé, n'affuble pas - comme
il le ferait en 'get' - l'url de variables attachées telles que :
&truc=un&truc=trois&truc=dixneuf
pour notre select nommé 'truc'

à mon idée, en JS (de base, dom ou ajax) on doit se débrouiller pour
reconstituer cette suite grace à la collection des éléments nommés
'truc' du form

document.form['x'].elements['truc'][0].value = 'un';
...
document.form['x'].elements['truc'][2].value = 'trois';
... / ...
document.form['x'].elements['truc'][18].value = 'dixneuf';

Maintenant, il faudrait voir comment est bâti ton XMLHttpRequest ...
- capte t-il toute l'url d'envoi ?
- si oui, qu'en fait-il ?
- s'il s'adresse à du php, le php sait quoi faire de tructrucruc ?




Ok,

j'ai résolu le problème, je liste le select et je crée une chaîne dans
une seul variable.

var val="";

for (var i=0; i<=form.liste1.length-1; i++)
{
if (form.liste1.options[i].selected)
val+="_"+form.liste1.options[i].value;
}

if (val=="")
return false;
else
val=val.substr(1);

str=ajax_get(monFichier.php, "action=insert&liste1="+val);


merci




Avatar
ASM
Ok,

j'ai résolu le problème, je liste le select et je crée une chaîne dans
une seul variable.

var val="";

for (var i=0; i<=form.liste1.length-1; i++)
{
if (form.liste1.options[i].selected)
val+="_"+form.liste1.options[i].value;


val += 'liste1='+form.liste1.options[i].value;
if(i<form.liste1.length-1) val += '&';
}

if (val=="")
return false;
else
val=val.substr(1);


// plus besoin de ça (on n'a plus de '_' au début)

str=ajax_get(monFichier.php, "action=insert&liste1="+val);


str=ajax_get(monFichier.php, "action=insert&"+val);

et ainsi le php récupère et se sert des variables comme d'hab en get
(sans avoir besoin qu'il rebâtisse l'array des 'liste1')
Du moins j'imagine, ne sachant pas trop ce que fait ton ajax_get()

--
Stephane Moriaux et son [moins] vieux Mac