Passaggio array da javascript a PHP tramite metodo POST

alo

Utente Attivo
22 Dic 2011
53
0
0
23
salve a tutti!
Ho un piccolo problema che mi sta facendo impazzire. Ho un array in PHP che contiene una lista di file presenti in una cartella (immagini).
PHP:
$images = funzione($cartella);
Sempre nella stessa pagina, ho riportato l'array PHP in javascript così
HTML:
<script type="text/javascript">
images = new Array("<?php echo join('", "',$images); ?>");
</script>
e funziona.
Per passare l'array javascript "images" tramite post a una pagina .php ho utilizzato la funzione $.post di jquery
HTML:
$.post(percorso, {images: images}, function(data) {
    $(tag).html(data);
});
e nel file .php
PHP:
$images = $_POST['images'];
ma non capisco perchè non funziona! Qualcuno può darmi una mano?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
ciao,
non credo si possa passare un array per post
se fail il var_dump() di $images dovrebbe stamparti solo la parola array
ti conviene creare una stringa con implode() invece che un array e semmai quando arriva alla pagina php la ritrasformi in array con explode()
 

alo

Utente Attivo
22 Dic 2011
53
0
0
23
Ciao,
Grazie per aver risposto. Mica potresti farmi un esempio?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
in effetti non sapevo che la funzione join() fosse l'equivalente di implode()
prova modificando questo
PHP:
<script type="text/javascript">
images = new Array("<?php echo join('", "',$images); ?>");
</script>
con
PHP:
<script type="text/javascript">
var images = "<?php echo implode(',',$images); ?>";
</script>
edit: dimenticavo
nel file php per ritrasformare la stringa in array scrivi cosi
PHP:
$images = explode(",", $_POST['images']);
 
Ultima modifica:

alo

Utente Attivo
22 Dic 2011
53
0
0
23
Si grazie. Io ho usato join per creare l'array sennò mi creava una stringa con gli elementi separti da una virgola. Grazie!