Mit Auswahl eines Button in HTML Box Variable ändern

Hallo Gemeinde,

momentan sehe ich den Wald vor lauter Bäumen nicht. Auch die SuFu brachte mir nach Tagen keine Idee.

Ich lese meinen Server (Twonky) per UPNP aus und erhalte auch ein Array mit allen relevanten Daten:

Jetzt habe ich das im Ansatz so gelöst, dass ich mir eine HTML-Seite in eine HTML-Box schreibe. Die Buttons werden auch korrekt dargestellt und eine Funktion zum Versenden ist enthalten:

function sndReq(url)
{
var action;
action = new XMLHttpRequest;
action.open(‚get‘, url);
action.send(null);
<!-- alert(url); -->
}

und dann Button --> onclick = sndReq(‚18364.ips.php?ObjectID=" . $id . "‘);

Die Site wird auch korrekt dagestellt:

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
 <html xmlns='http://www.w3.org/1999/xhtml'>
  <head>
   <!--Variablenuebergabe per XMLHttpRequest / Auslesen per GET in php-->
   <script type="text/JavaScript">

	function sndReq(url)
    {
    var action;
    action = new XMLHttpRequest;
    action.open('get', url);
    action.send(null);
    <!-- alert(url); -->
    }
   </script>

	<style type="text/css">
	h1 { color:#0000FF; font-family:Arial,sans-serif; }
	b,i  { color:#0000FF; font-family:Arial,sans-serif; }
	</style>

	</head>

	<body bgcolor="#000000" text="#0000FF">


  <input type="button"
	name="Chris Rea - Auberge"
	value="Auberge"
	id="0$1$13$77$78$1639$1640R69645"
	style="width:200px; height:50px; background-image:url(user/Button.png); background-color:#000000; color:blue; border: 2px blue;"
	alt="Auberge"
	onclick="alert('Überraschung!'); sndReq('18364.ips.php?ObjectID=" . $id . "');  sndReq('29600.ips.php?Titellist=" .$i. "');\">
  </input>

usw.

 </body>
</html>

(alert(‚Überraschung!‘) war nur zur Kontrolle, ob onclick reagiert :slight_smile: )

das Script zur Erstellung des HTML:

<?

//------------------------------------------------------------------------------
//Browse035 Buttons erstellen---------------------------------------------------
//------------------------------------------------------------------------------

//SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);

//Vorhandensein prüfen----------------------------------------------------------

if(isset($_GET["ObjectID"])){
		$ObjectID = $_GET["ObjectID"];
	}else{
		$ObjectID = "0";
	}

//$ObjectID = $_GET["ObjectID"];

//functions einbinden-----------------------------------------------------------

include ("UPNP_Functions_V1.8.ips.php");
include ("15256.ips.php"); //Browse024 - function
//include ("29600.ips.php"); //Browse035_SetValue --> Variablen schreiben

//IPAdresse und Port des Servers------------------------------------------------

$addressServ = "192.168.178.22"; //Twonky/VAIO
$portServ = "9000";

//IPAdresse und Port des primären Device (Host)---------------------------------

$address = "192.168.178.151";
$port = "8080";

//max_execution_time auf 10 Minuten erhöhen-------------------------------------

ini_set('max_execution_time', 600);

//Suchvariablen-----------------------------------------------------------------

$BrowseFlag = "BrowseDirectChildren"; //GetValue();
$Filter = "*"; //GetValue();
$StartingIndex = "0"; //GetValue();
$RequestedCount = "0"; //GetValue();
$SortCriteria = "0"; //GetValue();

$Result = ContentDirectory_Browse ($addressServ, $portServ, $ObjectID, $BrowseFlag, $Filter, $StartingIndex, $RequestedCount, $SortCriteria); // ContentDirectory_Browse aufrufen ? $Result / Message in Datei

$liste = BrowseList($Result); //Daten aus $Result in Array ($liste) übertragen
print_r ($liste);

echo "

";
$size = count ($liste); //Zahl der Einträge im Array = NumberReturned
echo ($size);

//------------------------------------------------------------------------------
//Buttons erstellen-------------------------------------------------------------
//------------------------------------------------------------------------------

//Head und Buttons erstellen und in HTML-Box schreiben--------------------------

$head="<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
 <html xmlns='http://www.w3.org/1999/xhtml'>
  <head>
   <!--Variablenuebergabe per XMLHttpRequest / Auslesen per GET in php-->
   <script type=\"text/JavaScript\">

	function sndReq(url)
    {
    var action;
    action = new XMLHttpRequest;
    action.open('get', url);
    action.send(null);
    <!-- alert(url); -->
    }
   </script>

	<style type=\"text/css\">
	h1 { color:#0000FF; font-family:Arial,sans-serif; }
	b,i  { color:#0000FF; font-family:Arial,sans-serif; }
	</style>

	</head>

	<body bgcolor=\"#000000\" text=\"#0000FF\">
";

$buttons ="";

for($i=0,$size=count($liste);$i<$size;$i++)
{
$title = ($liste[$i]["title"]);
$id = ($liste[$i]['id']);
$artist = ($liste[$i]['artist']);

$buttons .=("

  <input type=\"button\"
	name=\"" .$artist. " - " .$title. "\"
	value=\"" .$title. "\"
	id=\"" . $id . "\"
	style=\"width:200px; height:50px; background-image:url(user/Button.png); background-color:#000000; color:blue; border: 2px blue;\"
	alt=\"".$title."\"
	onclick=\"alert('Überraschung!'); sndReq('18364.ips.php?ObjectID=" . $id . "');  sndReq('29600.ips.php?Titellist=" .$i. "');\">
  </input>

");

}

echo $buttons;

//zusammensetzen und in HTML-Box schreiben-------------------------------------

$auswahl = "$head". "$buttons". "
 </body>
</html>
";

SetValueString(11348 /*[Audio\Browse\Auswahl]*/, $auswahl);

//partielle Website in D:/IP-Symcon/webfront/user/Browse/Browse.html erstellen--

		$handle = fopen("D:/IP-Symcon/webfront/user/Browse/Browse.html", "w"); 	//Browse schreiben
		fwrite($handle, $auswahl);
		fclose($handle);

?>

Und das Script zum Schreiben in die Variablen:

<?

//------------------------------------------------------------------------------
//Browse035 - SetValue----------------------------------------------------------
//Array $liste auslesen und Variablen setzen------------------------------------
//------------------------------------------------------------------------------

if(isset($_GET["Titellist"])){
		$TitelList = $_GET["Titellist"];
	}else{
		$TitelList = "0";
	}
	
//functions einbinden-----------------------------------------------------------

include ("UPNP_Functions_V1.8.ips.php");
include ("15256.ips.php"); //Browse024 - function

//IPAdresse und Port des Servers------------------------------------------------

$addressServ = "192.168.178.22"; //Twonky/VAIO
$portServ = "9000";

//IPAdresse und Port des primären Device (Host)---------------------------------

$address = "192.168.178.151";
$port = "8080";

//max_execution_time auf 10 Minuten erhöhen-------------------------------------

ini_set('max_execution_time', 600);

//Suchvariablen-----------------------------------------------------------------

$ObjectID = GetValue(38469 /*[Audio\Browse\DIDL-lite\ID [id]]*/); //Letzter Wert
$BrowseFlag = "BrowseDirectChildren"; //GetValue();
$Filter = "*"; //GetValue();
$StartingIndex = "0"; //GetValue();
$RequestedCount = "0"; //GetValue();
$SortCriteria = "0"; //GetValue();

$Result = ContentDirectory_Browse ($addressServ, $portServ, $ObjectID, $BrowseFlag, $Filter, $StartingIndex, $RequestedCount, $SortCriteria); // ContentDirectory_Browse aufrufen ? $Result / Message in Datei

$liste = BrowseList($Result); //Daten aus $Result in Array ($liste) übertragen
print_r ($liste);

echo "

";
$size = count ($liste); //Zahl der Einträge im Array = NumberReturned
echo ($size);



$typ = $liste[$TitelList]['typ']; // gibt typ des X. Array aus
setvalue(11601 /*[Audio\Browse\DIDL-lite\Container/Item [typ]]*/, (string)$typ);

$id = $liste[$TitelList]['id']; // gibt id des X. Array aus
setvalue(38469 /*[Audio\Browse\DIDL-lite\ID [id]]*/, (string)$id);

$refid = $liste[$TitelList]['refid']; // gibt refid des X. Array aus
setvalue(43495 /*[Audio\Browse\DIDL-lite\RefID [refID]]*/, (string)$refid);

$parentid = $liste[$TitelList]['parentid']; // gibt parentid des X. Array aus
setvalue(41353 /*[Audio\Browse\DIDL-lite\ParentID [parentID]]*/, (string)$parentid);

$restricted = $liste[$TitelList]['restricted']; // gibt restricted des X. Array aus
setvalue(27617 /*[Audio\Browse\DIDL-lite\Restricted [restricted]]*/, (string)$restricted);

$artist = $liste[$TitelList]['artist']; // gibt artist des X. Array aus
setvalue(42599 /*[Audio\Browse\DIDL-lite\Artist [dc:creator]]*/, (string)$artist);

$album = $liste[$TitelList]['album']; // gibt album des X. Array aus
setvalue(48998 /*[Audio\Browse\DIDL-lite\Album [upnp:album]]*/, (string)$album);

$title = $liste[$TitelList]['title']; // gibt title des X. Array aus
setvalue(31924 /*[Audio\Browse\DIDL-lite\Titel [dc:title]]*/, (string)$title);

$res = $liste[$TitelList]['resource']; // gibt resource des X. Array aus
setvalue(46947 /*[Audio\Browse\DIDL-lite\URI [resource]]*/, (string)$res);

$duration = $liste[$TitelList]['duration']; // gibt duration des X. Array aus
setvalue(56480 /*[Audio\Browse\DIDL-lite\Duration [duration]]*/, (string)$duration);

$size = $liste[$TitelList]['size']; // gibt size des X. Array aus
setvalue(58375 /*[Audio\Browse\DIDL-lite\Size [size]]*/, (string)$size);

$bitrate = $liste[$TitelList]['bitrate']; // gibt bitrate des X. Array aus
setvalue(27089 /*[Audio\Browse\DIDL-lite\Bitrate [bitrate]]*/, (string)$bitrate);

$albumart = $liste[$TitelList]['albumArtURI']; // gibt albumArtURI des X. Array aus
SetValue(27682 /*[Audio\Browse\DIDL-lite\AlbumArtURI [upnp:albumArtURI]]*/, (string)$albumart);

	//AlbumArt abholen und speichern------------------------------------------
	$imageContent = @Sys_GetURLContent($albumart);
	$fileHandle = fopen(IPS_GetKernelDir()."media/AlbumArt.jpg", "w");
	@fwrite($fileHandle, $imageContent);
	fclose($fileHandle);

$genre = $liste[$TitelList]['genre']; // gibt genre des X. Array aus
setvalue(48901 /*[Audio\Browse\DIDL-lite\Genre [upnp:genre]]*/, (string)$genre);

$date = $liste[$TitelList]['date']; // gibt date des X. Array aus
setvalue(35740 /*[Audio\Browse\DIDL-lite\Date [dc:date]]*/, (string)$date);

$originalTrackNumber = $liste[$TitelList]['originalTrackNumber']; // gibt originalTrackNumber des X. Array aus
setvalue(32295 /*[Audio\Browse\DIDL-lite\TrackNumber [upnp:originalTrackNumber]]*/, (string)$originalTrackNumber);

$class = $liste[$TitelList]['class']; // gibt class des X. Array aus
setvalue(52846 /*[Audio\Browse\DIDL-lite\Class [upnp:class]]*/, (string)$class);

$extension = $liste[$TitelList]['extension']; // gibt extension des X. Array aus
setvalue(12802 /*[Audio\Browse\DIDL-lite\Extension [pv:extension]]*/, (string)$extension);

?>

Das Ganze sollte wie unten aussehen.

Leider komme ich über eine Ansicht nicht hinaus d.h. es erfolgt kein erneuter Browse-Aufruf, geschweige denn ein aktuelles Schreiben der Variablen.

Hat jemand einen Rat ?

Viele Grüsse

André