← Javascript

[jquery] Como enviar um Vector de Objectos pelo metodo $.post ?

Lida 3171 vezes

Offline

sapovideo 
Membro
Mensagens 295 Gostos 0
Troféus totais: 25
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

yt_playlist[0] = new objecto("A","B","C");
yt_playlist[1] = new objecto("D","E","F");

      /* SALVAR PLAYLIST */
      $("#submit").click(function(){
            $.post(url,{
                  lista:yt_playlist
            },function(data){                     
               alert(data);
            });
      });

O alert da o que é retornado pelo php ( <? echo "<pre>"; print_r($_POST['lista']); echo "</pre>"; ?>) o resultado obtido é do tipo "<pre>[object Object]</pre>" ... o que devo colocar :x no yt_playlist para ir como array se possível :x
Offline

sapovideo 
Membro
Mensagens 295 Gostos 0
Troféus totais: 25
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

Há uma opção usando o pack json para jquery.
http://code.google.com/p/jquery-json/

e transformar yt_playlist = $.toJSON(yt_playlist); , e irá enviar um objecto json para o php. No entanto ainda nao é bem o que pretendia.
Offline

rtbfreitas 
Equipa
Mensagens 1497 Gostos 9
Feedback +24

Troféus totais: 30
Trófeus: (Ver todos)
Windows User Apple User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4

Qual é a estrutura do que queres que seja retornado pelo jquery?
Offline

sapovideo 
Membro
Mensagens 295 Gostos 0
Troféus totais: 25
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

Qual é a estrutura do que queres que seja retornado pelo jquery?

Viva,

Acabei por enviar transformando em JSON , e depois no PHP fiz o parsing do mesmo.

O objecto pode ser algo do tipo
function objecto(titulo,cod,img){
this.titulo = titulo;
this.cod = cod;
this.img = img;
}

A ideia seria tipo no php só ter de fazer algo do tipo:
foreach($_POST['lista'] as $track){
  echo $track['cod'];
  echo $track['titulo'];
  echo $track['img'];
}

Mas acabei por usar uma classe para php4 json

$json = new Services_JSON();
$playlist = $json->decode(stripslashes($_POST['lista']));

foreach($playlist as $track){
   gravarTrack($track->cod,$track->titulo,$track->img,$track->tempo);
}