Newsgroup: it.comp.lang.javascript
Titolo: Passaggio array da una funzione javascript a php

Salve. Tramite delle funzioni javascript ho popolato delle combobox con
determinati valori. Tuttavia ho necessità di salvare il contenuto di
una combobox in un array da passare al codice php (presente sulla
stessa pagina, quindi niente collegamenti o forse...) per poterlo poi
salvare in variabili di sessione. Non riesco a passare l'array, mi date
una mano? 
Grazie.

 una combobox in un array da passare al codice php 
Se la combobox di cui parli è una select multipla, fai in modo che il
suo nome termini con un paio di parentesi quadre:
<select name="pippo[]" ecc.
E sul server ti trovi già pronto l'array: 
$ar=$_POST['pippo'];
print_r($ar);
Se la combobox non è una select multipla, allora non lo so :)
-- 
mailto: y = i
----------------------------------------
Vivo nel terrore di non essere frainteso 
(Oscar Wilde)

 Se la combobox non è una select multipla, allora non lo so :)
Ciao, grazie per aver risposto. Il problema è che in php la combobox
non viene modificata, la modifica avviene sul lato client usando
appunto il javascript. Se ogni variabile inserita nel combo tramite
java la salvassi in un array come potrei passare l'array al php?

 java la salvassi in un array come potrei passare l'array al php?
Secondo me vai complicandoti la vita. Comunque, una strada può essere:
- ciclare tutti i valori della select
- riempire un campo hidden coi suddetti valori separati da una virgola
  (o altro separator, a tua scelta) 
E sul server:
$ar=explode($separator,$_POST['nomeCampoHidden']);


Posto il codice
PHP
<select name="utentimail" multiple="multiple">
</select>
Javascript
function AggElem()
{ //combo di origine
     var
nuovo=document.invia.utenti.options[document.invia.utenti.selectedIndex].text;
     i = document.invia.utentimail.length
     var option0 = new Option(nuovo)
   //combo destinazione
    document.invia.utentimail.options[i]=option0
}
ho necessità di passare option0 al php. In quanto sta funzione viene
chiamata un sacco di volte le option le raggrupperò in un array.

 nuovo=document.invia.utenti.options[document.invia.utenti.selectedIndex].text;
// Fin qui ok, il resto sostituiscilo con:
     var i = document.forms["invia"].elements["utentimail[]"].length;
     var option0 = new Option(nuovo,nuovo);
    document.forms["invia"].elements["utentimail[]"].options[i]=option0;
}
<?php
$ar=$_POST['utentimail'];
print_r($ar);
/* l'array mostrerà tutti gli elementi SELEZIONATI della select
utentimail. */


Grazie dell'aiuto. Un ultima domanda: ma il submit deve essere
effettuato in javascript?

 effettuato in javascript?
Ho capito che è uguale.
Le variabili le passa alla funzione php ma solo se clicco la variabile
nella checkbox.

 nella checkbox.
Esatto, ma nella select, non nella checkbox :-)
E se vuoi inviare _tutti_ i valori senza perdere tempo a cliccare a
destra e a manca, puoi effettuare la selezione dell'intera lista al
momento del submit. Se hai bisogno d'una funzioncina adatta chiedi pure.


 momento del submit. Se hai bisogno d'una funzioncina adatta chiedi pure.
Se vuoi, mi farebbe piacere. Dovrei utilizzare qualcosa come il focus,
vero?

 vero?
Non proprio, vanno selezionate le voci una ad una.
function Sel() {
var s=document.forms["invia"].elements["utentimail[]"];
    for (var i=0; i < s.options.length; i++) {
    s.options[i].selected = true;
    }
}
<form name="invia" action="xxx" method="post" onsubmit="Sel()">
A occhio e croce credo vada bene (non l'ho testato, vedi tu). Alla
pressione del submit dovresti trovare l'array sul server cosě come lo
volevi.


 volevi.
E come sempre funziona. Ti ringrazio infinitamente (te porterei a
magnà). Speriamo che per il momento non abbia più problemi, non ce la
faccio +. Grazie, ciao.

 Grazie, ciao.
^__-
