Switch search songs to a json response

This commit is contained in:
Junior 2025-04-18 14:34:03 -04:00
parent 20d7bc42f5
commit ba1c7afa65
2 changed files with 17 additions and 13 deletions

View File

@ -10,18 +10,22 @@ if ( isset($_REQUEST['searchfor']) ) {
$songs = Song::getSearchList($searchfor); $songs = Song::getSearchList($searchfor);
$data = array();
$data["search"] = array();
foreach ( $songs as $song ) { foreach ( $songs as $song ) {
echo "<div id='search_{$song->getID()}' class='songlist_song_container' onClick='addSongToQueue({$song->getID()});'>\n"; $curdata = array();
echo " <div class='songlist_img_container'><img class='songlist_img' src='{$song->getArtFile(ARTURL)}'></div>\n"; $curdata["id"] = $song->getID();
echo " <div class='songlist_details_container'>\n"; $curdata["arturl"] = $song->getArtFile(ARTURL);
echo " <p class='nomargin'><span class='playing_label'>Song:</span> {$song->getTitle(HTMLSAFE)}</p>\n"; $curdata["title"] = $song->getTitle(HTMLSAFE);
echo " <p class='nomargin'><span class='playing_label'>Artist:</span> {$song->getArtist(HTMLSAFE)}</p>\n"; $curdata["artist"] = $song->getArtist(HTMLSAFE);
echo " <p class='nomargin'><span class='playing_label'>Album:</span> {$song->getAlbum(HTMLSAFE)}</p>\n"; $curdata["album"] = $song->getAlbum(HTMLSAFE);
echo " </div>\n"; $curdata["year"] = $song->getYear(HTMLSAFE);
echo "</div>\n"; $data['search'][] = $curdata;
echo "<hr class='songlist'>\n";
} }
header('Content-Type: application/json');
echo json_encode($data);
exit(); exit();
// vim: sw=3 ts=3 et ai:
?>

View File

@ -275,10 +275,10 @@ function executeSearch() {
if ( searchfor.length < 4 ) return false; if ( searchfor.length < 4 ) return false;
$.ajax({ $.ajax({
url: 'ajax/ajax_searchsongs.php', url: 'ajax/ajax_searchsongs.php',
dataType: 'html', dataType: 'json',
data: {searchfor: searchfor}, data: {searchfor: searchfor},
success: function(data, stat, jqo) { success: function(data, stat, jqo) {
$('#search_contents').html(data); $('#search_contents').html(generateSongListHTML("search", data.search));
} }
}); });
} }