par
guilt92 » 14 juin 2006, 10:18
Le principe est que tu ne peux pas faire passer un tableau en paramètres.
Je te conseille personnellement de récupérer les valeurs dans une chaine de caractère que tu mets dans un champ caché, et de récupérer cette chaine dans la page suivante pour la reconvertir en tableau.
Si tu modifies ton bout de code :
Code : Tout sélectionner
<script type="text/javascript">
<!--/*--><![CDATA[//> <!--
nb=document.getElementById("sel").options.length;
tabsel=Array(nb);
function sel(val) {
(val>=0)?tabsel[val]=!tabsel[val]:tabsel=Array(nb);
for (i=0;i<nb;i++) document.getElementById("sel").options[i].selected=tabsel[i];
var text_test = "";
for(i=0;i<tabsel.length;i++)
{
if(tabsel[i]) text_test += document.getElementById("sel").options[i].value+";";
}
var champ=document.getElementById("champ_cache");
champ.value = text_test;
}
//--><!]]>
</script>
Si tu as dans un formulaire un champ :
<input type="hidden" id="champ_cache" name="champ_cache"/>
Alors ce champ contiendra toujours toutes les valeurs selectionnées, séparées par un ; .
Dans la page en php ou tu récupère $_POST["champ_cache"] tu pourras utiliser la fonction implode() pour recréer un tableau si nécessaire.
J espere que cela te sera utile.
EDIT : J'ai remarqué que si tu mettais le SELECT et le script entre des balises <form></form> alors cela ne marche plus, il faut donc le faire à part et mettre uniquement le champ caché (et les autres données si il y en a) dans le <form>
Le principe est que tu ne peux pas faire passer un tableau en paramètres.
Je te conseille personnellement de récupérer les valeurs dans une chaine de caractère que tu mets dans un champ caché, et de récupérer cette chaine dans la page suivante pour la reconvertir en tableau.
Si tu modifies ton bout de code :
[code] <script type="text/javascript">
<!--/*--><![CDATA[//> <!--
nb=document.getElementById("sel").options.length;
tabsel=Array(nb);
function sel(val) {
(val>=0)?tabsel[val]=!tabsel[val]:tabsel=Array(nb);
for (i=0;i<nb;i++) document.getElementById("sel").options[i].selected=tabsel[i];
var text_test = "";
for(i=0;i<tabsel.length;i++)
{
if(tabsel[i]) text_test += document.getElementById("sel").options[i].value+";";
}
var champ=document.getElementById("champ_cache");
champ.value = text_test;
}
//--><!]]>
</script>[/code]
Si tu as dans un formulaire un champ :
<input type="hidden" id="champ_cache" name="champ_cache"/>
Alors ce champ contiendra toujours toutes les valeurs selectionnées, séparées par un ; .
Dans la page en php ou tu récupère $_POST["champ_cache"] tu pourras utiliser la fonction implode() pour recréer un tableau si nécessaire.
J espere que cela te sera utile.
[b]EDIT : [/b] J'ai remarqué que si tu mettais le SELECT et le script entre des balises <form></form> alors cela ne marche plus, il faut donc le faire à part et mettre uniquement le champ caché (et les autres données si il y en a) dans le <form>