Lars: dynamisches javascripting geht nicht

Beitrag lesen

hallo
ich habe ein recht komplexes problem
ich habe in einer datenbank künstler und in einer seperaten tabelle bilder zu den einzelnen künstlern
wenn ich nun auf meiner webseite (ajax-stil) über js-->php-->mysql die bilder versuche zu laden so funktioniert nach einem seitenreload die slideshow (javascript-effekt opacity) der geladenen bilder nur einmal !

um das zu verdeutlichen, der komplette head-bereich der webseite (scripts)

Code:

<head>
<title>Apfel-Eingang_199896l</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">

a=1.00;
var bilder = new Array();
act = 0;
sema=0;

function fadeout(){
sema=1;
a-=0.05;

if(a>=0){
picframe.style.opacity = a;
setTimeout('fadeout()',10);
}else{
picframe.style.opacity=0;
a=0;
picchange();
}
}

function picchange(){
var x = bilder[act];
picframe.src="";
picframe.src=x;
setTimeout('fadein()', 500);
}

function fadein(){

a+=0.05;

if(a<=1){
picframe.style.opacity = a;
setTimeout('fadein()',10);
}else{
picframe.style.opacity=1;
a=1.00;
sema=0;
}
}

function main(){
picframe.onClick="main()";
if(sema==0)
{
fadeout();
if(act<bilder.length-1)
 {
 act = act + 1;
 }else{
 act=0;
 }
}
}

function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

var http = createRequestObject();

function sndReq(action, param) {
    http.open('get', 'control.php?action='+action+'&param='+param);
    http.onreadystatechange = handleResponse;
    http.send(null);
}

function handleResponse() {
    if(http.readyState == 4){
        var response = http.responseText;
        var update = new Array();

if(response.indexOf('|' != -1)) {
  update = response.split('|');
   for(i=0; i<update.length; i+=2) {
   if(update[i]!='bilder')
   {
   document.getElementById(update[i]).innerHTML = update[i+1];
   }else{
   bilder = update[i+1].split(';');
   }
   }
        }
    }
}
</script>
</head>

nun die control.php die die js-xml-requests annimmt und für die db-kommunikation sorgt

Code:

<?
 switch($_REQUEST['action'])
{

default:

include ("cms/mysqlconnect.php");

$abfrage = "SELECT Text FROM links WHERE Link LIKE '".$_REQUEST['action']."';";

$result = mysql_query($abfrage);

if (!$result) {
     $Dateiinhalt = 'Abfrage konnte nicht ausgeführt werden: ' . mysql_error();
     exit;
 }
 $row = mysql_fetch_row($result);

$Dateiinhalt = $row[0];

mysql_close($verbindung);

echo "text|$Dateiinhalt";

break;

case 'kuenstlerbild':

include ("cms/mysqlconnect.php");

$abfrage = "SELECT text FROM kuenstler WHERE id LIKE '".$_REQUEST['param']."';";

$result = mysql_query($abfrage);

if (!$result) {
     $Dateiinhalt = 'Abfrage konnte nicht ausgeführt werden: ' . mysql_error();
     exit;
 }
 $row = mysql_fetch_row($result);

$Dateiinhalt2 = $row[0];

$abfrage = "SELECT url FROM bilder WHERE id LIKE '".$_REQUEST['param']."' AND first LIKE '1';";

$result = mysql_query($abfrage);

if (!$result) {
     $Dateiinhalt = 'Abfrage konnte nicht ausgeführt werden: ' . mysql_error();
     exit;
 }
 $row = mysql_fetch_row($result);

$Dateiinhalt3="

<center>
<img name="picframe" onClick="main()" visibility="visible" src=".$row[0]." style="width:354; height:446">
</center>

";

$abfrage = "SELECT url FROM bilder WHERE id LIKE '".$_REQUEST['param']."';";

$result = mysql_query($abfrage);

if (!$result) {
     $Dateiinhalt = 'Abfrage konnte nicht ausgeführt werden: ' . mysql_error();
     exit;
 }

$pfade="";

while($row = mysql_fetch_array($result))
 {
 $pfade .= $row[0].";";
 }

$pfade=substr($pfade,0,strlen($pfade)-1);

mysql_close($verbindung);

echo "picplace|$Dateiinhalt3|text|$pfade|bilder|$pfade";

break;

}
?>

eigentlich sollte in das feld text nicht die $pfade ausgegeben werden, sondern der text, das ist nur als kontrollmöglichkeit gedacht
die pfade werden aber korrekt ausgegeben (pfad;pfad;pfad)

die datenbank wird korrekt ausgelesen, daran liegt es nicht
ich weiß nicht woran es liegt, aber wenn ich die seite aufrufe von meinem lokalen webserver aus, dann wird die animation beim ersten mal richtig angezeigt und beim zweiten mal geht nichts mehr bei einem klick auf das bild
was läuft da falsch ?
danke schon im vorraus