hei ..
tässä olen yrittäny usealla eri tavalla tehdä toivo kappale osiota radioni sivuille. nyt minusta tuntuu että olen löytänyt mieleiseni tavan .. ainut ongelma on toimivuus joka ei ole vielä huipussaan.
saan artistit näkymään toivotulla tavalla mutta kun artistia klikkaa pitäisi avautua artistin albumit. näin ei kuitenkaan käy enkä ole saanut niitä näkymään.
osaisittekohan kertoa mistä johtuu?
koodista puuttuu myös stringien escape. tiedän mitä se tarkoittaa mutta käytännössä en osaa sitä koodiin sujauttaa.
tässä siis viisi koodin pätkää .. toivottavasti saatte jotain irti.
test.php
<!DOCTYPE HTML public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com"> <title>Stageradio.com</title> <link rel="stylesheet" type="text/css" href="style.css" /> <script type="text/javascript" src="ajax.js"></script> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("prototype", "1.6"); google.load("scriptaculous", "1.8.1"); </script> <script language="JavaScript1.2"><? require("songinfo.js"); ?></script> <script type="text/javascript" language="javascript"> <? //lataa soittimen ?> <!-- function player1(stationID, relayID) { var path = "http://www.audiorealm.com"; listenwin = window.open(path+"/listen.html?stationID="+stationID , "_AR_listen", ""); } function player(stationID, relayID) { player_popup(stationID,0); } function player_popup(stationID,publisherID) { popup_center('http://player.spacialnet.com/players/player.html?stationID='+stationID+'&publisherID='+publisherID,"_player",706,526,''); return false; } function popup_center(mylink, windowname, w, h) { if((w<=0)||(w==null)) w = 706; if((h<=0)||(h==null)) h = 526; var x = (screen.availWidth / 2) - (w / 2); var y = (screen.availHeight / 2) - (h / 2); if (!window.focus)return true; var href; if (typeof(mylink) == 'string') href=mylink; else href=mylink.href; winref = window.open(href, windowname, 'width='+w+',height='+h+',location=no,status=no,menubar=no,scrollbars=no,left='+x+',top='+y); return winref; } --> </script> <? require("req/request.java.php"); ?> <script language="JavaScript1.2"> function PictureFail(picname) { if (document.images) { document.images[picname].width = 1; document.images[picname].height = 1; } } </script> <? // **************************************************** // tästä ylöspäin pitäisi kaiken olla kunnossa. // **************************************************** ?> <script type="text/javascript" src="ajax.js"></script> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("prototype", "1.6"); google.load("scriptaculous", "1.8.1"); </script> </head> <body onload="getArtists();" bgcolor="#000000"> <center> <? // Sivujen pää table alkaa ?> <table border="1"> <? // Header ?> <tr> <td id="logo" colspan="3"> <img src="testi/pic1.gif"> </td> </tr> <? //Navigation palkki ?> <tr> <td width="15%" valign="top"> <? require("nav.php"); ?> </td> <td width="70%" valign="top"> <table> <tr> <td valign="top" id="requesth">Artists<br/><div id="artists"/></td> <td valign="top" id="requesth">Albums<br/><div id="albums"/></td> <td valign="top" id="requesth">Songs<br/><div id="songs"/></td> </tr> </table> <? include ("footer.php"); ?>
ajax.js
function getArtists() { new Ajax.Request('artists.php', { method:'post', onSuccess: function(transport) { var response = transport.responseText || "no response"; new Effect.Fade( "artists", { afterFinish: function () { document.getElementById( "artists" ).innerHTML = response; new Effect.Appear( "artists" ); } }); } }); } function getAlbums( artist ) { document.getElementById( "albums" ).innerHTML = ""; document.getElementById( "songs" ).innerHTML = ""; new Ajax.Request('albums.php', { method:'post', parameters: {id: artist}, onSuccess: function(transport) { var response = transport.responseText || "no response"; new Effect.Fade( "albums", { afterFinish: function () { document.getElementById( "albums" ).innerHTML = response; new Effect.Appear( "albums" ); } }); } }); } function getSongs( album ) { document.getElementById( "songs" ).innerHTML = ""; new Ajax.Request('songs.php', { method:'post', parameters: {id: album}, onSuccess: function(transport) { var response = transport.responseText || "no response"; new Effect.Fade( "songs", { afterFinish: function () { document.getElementById( "songs" ).innerHTML = response; new Effect.Appear( "songs" ); } }); } }); }
artist.php
<? $samDB = mysql_connect( "stageradio.servemp3.com", "******", "********" ); mysql_select_db( "samdb", $samDB); $result = mysql_query( "select distinct artist from songlist order by artist ", $samDB) or die(mysql_error()); // ************************************************************************** ?> <table> <?php while ( $row = mysql_fetch_assoc($result)) { ?> <tr> <td id="request"><a href="javascript:getAlbums( <?php echo( $row["artist"] ); ?> );"><?php echo( $row["artist"] ); ?></a></td> </tr> <?php } ?> </table> <? mysql_close( $samDB ); ?>
albums.php
<?php $samDB = mysql_connect( "stageradio.servemp3.com", "*****", "***********" ); mysql_select_db( "samdb", $samDB); $result = mysql_query( "select distinct album from songlist where artist = '" . $_POST["id"] . "' order by album", $samDB ); // ************************************************************************** ?> <table> <?php while ( $row = mysql_fetch_assoc( $result ) ) { ?> <tr> <td id="request"><a href="javascript:getSongs( <?php echo( $row["album"] ); ?> );"><?php echo( $row["album"] ); ?></a></td> </tr> <?php } ?> </table> <?php mysql_close( $samDB ); ?>
songs.php
<?php $samDB = mysql_connect( "stageradio.servemp3.com", "******", "*********" ); mysql_select_db( "samdb", $samDB); $result = mysql_query( "select title, trackno from songlist where album = '" . $_POST["id"] . "' order by trackno", $samDB ); // ************************************************************************** ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>title</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> </head> <body> <table> <?php while ( $row = mysql_fetch_assoc( $result ) ) { ?> <tr> <td><?php echo( $row["trackno"] ); ?>. <?php echo( $row["title"] ); ?></td> </tr> <?php } ?> </table> </body> </html> <?php mysql_close( $samDB ); ?>
Mainetta ja kunniaa ongelman ratkaisijalle! :D
Heippa stageradio!
Laita funkkariin: function getAlbums( artist ), ennen viimeistä aaltosuljetta seuraava testi:
var ihtml = document.getElementById('albums').innerHTML; alert(ihtml);
ja tsekkaa miltä näyttää...
tapaus tyhjää: vikaa voi alkaa etsimään request funkkarista
tapaus else: tutki miltä kokonaisuus vaikuttaa eli puuttuuko esim. jokin tagi
(hipsut="" eivät tietenkään näy), jos puuttuu niin ensin voi hieman ihmetyttää
ja myöhemmin ehkäpä myös jurppia (#¤"..tun%..rpä)...olen kokenut em. fiilikset...
selvisin tuolloin sijoittamalla 'käsin' taulurakennelmaan
<table><tr><td><div id="xdiv"></div>...ylimääräisen sulkemattoman tagin (lihavoitu).
Nyttemmin olen lakannut etsimästä vastausta ko. ilmiölle ja voin huomattavasti
paremmin...
sain toimimaan .. tein kaiken uudelleen ja rupes skulaamaan .. kiitos ja kumarrus!
Aihe on jo aika vanha, joten et voi enää vastata siihen.