2011-11-23 3 views
0

그래서 사용자가 노래를 검색하여 만드는 동적으로 생성 된 재생 목록이 있습니다. 페이지가 새로 고쳐지면 모든 노래가 거기에 머물러 있기를 바랍니다.배열에 세션 저장 중? 어떻게해야합니까?

재생 목록을 저장하는 가장 좋은 방법은 무엇입니까?

내가 Persist.js를 사용하지만, 같은 배열을 저장하는 시도 :

[["title":"song name", "artist":"someartist"], ["title":"another song", "artist":"one more"]] 

항상 배열을 만드는을 다음과 같이 표시됩니다 :

["title", "song name", "artist", "someartist", "title"...] 

내가 원하는하지 무슨. 재생 목록이 커지면 최상의 아이디어인지 확실하지 않습니다.

그래서 서버 세션을 만드는 것이 더 좋을 때? 또는 모든 노래를 데이터베이스에 저장하십시오.

감사합니다.

답변

1

단순히 문자열로 저장되는 JSON 객체로 배열을 저장할 수 있습니다. 이 방법으로 세션 변수로 쉽게 저장할 수 있습니다.

$_SESSION['test'] = json_encode($myArray); 

$loadedArray = json_decode($_SESSION['test']); 

난 당신이 목록을 얻을 수있는 방법을 큰 모르는 특히,이 목록은 시간의 길이를 저장할 경우 데이터베이스에 저장 권하고 싶습니다. 양자 택일로, 당신은 단지 배열 길이에 모자를 쓰고 첫 번째 20 이후에 모든 트랙을 버릴 수 있습니다.

1

또한 URL 해시 값으로 저장 한 다음 페이지를로드하고 읽어 들여 노래를로드 할 수도 있습니다.

노래가 PHP를 통해로드되는 경우 쿠키로 설정 한 다음 PHP에서 쿠키를 읽을 수 있습니다.

또한 PHP를 통해로드되고 있고 쿠키를 사용하고 싶지 않은 경우 PHP에서 전체 스크립트가로드되기 전에 실행되도록 인라인 스크립트를 반향시킬 수 있습니다. 해시 값이 URL은 해시 값이 GET 값으로 변환 된 페이지로 사용자를 리디렉션합니다.이 페이지는 PHP에서 읽을 수 있습니다.