2014-11-23 1 views
1

Я начинающий программист, и я пытаюсь создать динамически заполненный плейлист из файлов в папке. Я нашел результат здесь Dynamically populate playlist with JSON from PHP in jPlayer. Это позволит мне делать то, что мне нужно.Передача PHP-массива в плейлист jplayer

Однако, я хочу понять, почему мой метод не работает. Я "м в состоянии получить массив в JavaScript, используя переменную myPlaylist, которая выглядит следующим образом от console.log.

Array [ 
    ""title":"Song1","artist":"Choir","mp3":"C:\xampp\htdocs\media\Song1.mp3"", 
    ""title":"Song2","artist":"Choir","mp3":"C:\xampp\htdocs\media\Song2.mp3"", 
    ""title":"Song3","artist":"Choir","mp3":"C:\xampp\htdocs\media\Song3.mp3"", 
    ""title":"Song4","artist":"Choir","mp3":"C:\xampp\htdocs\media\Song4.mp3"", 
    ""title":"Song5","artist":"Choir","mp3":"C:\xampp\htdocs\media\Song5.mp3"" 
    ] 

Когда я запускаю это и список воспроизведения jplayer появляется в браузере он перечисляет 5 пунктов, но списки все они не определены. Опять же, я уверен, что делаю что-то глупое, но я не могу понять, почему все они не определены.

Заранее благодарим за вашу помощь!

ответ

0

Для того, чтобы обрабатывать элементы плейлиста как объекты, их нужно обернуть скобками вместо кавычек. Окончательный выходной массив должен выглядеть следующим образом:

[ 
    {"title":"Song1","artist":"Choir","mp3":"C:\xampp\htdocs\media\Song1.mp3"}, 
    {"title":"Song2","artist":"Choir","mp3":"C:\xampp\htdocs\media\Song2.mp3"}, 
    {"title":"Song3","artist":"Choir","mp3":"C:\xampp\htdocs\media\Song3.mp3"}, 
    {"title":"Song4","artist":"Choir","mp3":"C:\xampp\htdocs\media\Song4.mp3"}, 
    {"title":"Song5","artist":"Choir","mp3":"C:\xampp\htdocs\media\Song5.mp3"} 
] 

Кроме того, я не знаю, как вы готовите пути к файлам, но вы должны знать, что \ является маскирующим в JavaScript. Вы должны либо «избежать escape-символа», используя вместо этого \\, либо use the escape() and unescape() functions, чтобы преобразовать пути к файлам.

+0

Спасибо за помощь. Однако он все еще не работает. Он по-прежнему отображается как неопределенный. У меня есть массив, отформатированный следующим образом. Array ["{" title ":" Song1 "," artist ":" Choir "," mp3 ":" C: \ xampp \ htdocs \ media \ Song1.mp3 "}", "{" title ":" Song2 "," artist ":" Choir "," mp3 ":" C: \ xampp \ htdocs \ media \ Song2.mp3 "}", "{" title ":" Song3 "," artist ":" Choir "," «mp3»: «C: \ xampp \ htdocs \ media \ Song3.mp3"} "," {"title": "Song4", "artist": "Choir", "mp3": "C: \ xampp \ htdocs \ media \ Song4.mp3 "}", "{" title ":" Song5 "," artist ":" Choir "," mp3 ":" C: \ xampp \ htdocs \ media \ Song5.mp3 "}"] Ведущие и конечные «только из console.log». Не существует в предупреждении – EngiNeer732

+0

Мне нужно будет увидеть код, который генерирует массив, чтобы узнать больше. Можете ли вы поместить его в jsfiddle? – apostl3pol

+0

Ссылка ниже. генерируется с использованием PHP. Затем массив передается в javascript с помощью json_encode(). http://jsfiddle.net/EngiNeer732/2heh1cb8/ – EngiNeer732