• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Nicht nachvollziehbares Problem mit der Übergabe einer Variable

KevP

New member
Problem mit der Übergabe einer Variable

Hallo Leute

Mein Script beinhaltet JS sowie PHP, poste es aber hier, da ich denke dass das Problem im PHP liegt.

Im folgenden Script lese ich Daten aus einer Datenbank aus, speichere diese in Arrays. Die Arrays wandle ich in Strings um, damit ich mit diesen im JS weiter arbeiten kann.

Das Script funktioniert auch einwandfrei, jedoch sobald in einem content mehr als 1 <p>-Tag steht (und nur die <p>-Tags machen Probleme), funktioniert das JS-Script nicht mehr. Definiere ich aber die Variable selbt (z.B. $content = "<p>Test</p><p>Test</p>"; ) funktioniert wieder alles.

Hoffe ihr versteht was ich meine. Danke schonmal für eure Hilfe!

Hier mein Script:
Code:
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
</head>
<body>

<div id="ausgabe"> </div>

<?php
	include("includes/functions/db_connection.php");
	$timestamp = time();
	$aktuelle_infos = array();
	$dauer = array();
	
//-------------------------------MySQL Abfrage-------------------------------					
	$sql = "SELECT id, timestamp_start, timestamp_end, anzeigedauer_ms, content1, content2, content3, content4, content5, content6, content7, content8, content9, content10, anzahl_seiten FROM meldungen WHERE timestamp_start < $timestamp";	
	$result = mysql_query($sql); 	

//------------------------------Arrays befüllen------------------------------	
	while ($row = mysql_fetch_assoc($result)) 
	{		
		$timestamp_start = $row["timestamp_start"];
		$timestamp_end = $row["timestamp_end"];	
		$anzeigedauer_ms = $row["anzeigedauer_ms"];	
		$anzahl_seiten = $row["anzahl_seiten"];	
		
		if($timestamp_end >= $timestamp)
		{
			for($a = 1; $a <= $anzahl_seiten; $a++)
			{
				$content_nr = 'content'.$a;
				$aktuelle_infos[] = $row[$content_nr];
				$dauer[] = $anzeigedauer_ms;
			}				
		}
	}
//------------------------------Array in String umwandeln------------------------------
	$string_content = implode(" | ", $aktuelle_infos);	//Das ist der Wert der Variable: <p>Test</p> <p>Test</p>

//Wenn ich anstelle von $string_content = implode(" | ", $aktuelle_infos); die Variable so definiere $string_content = "<p>Test</p> <p>Test</p>"
//funktioniert alles einwandfrei.

	$string_dauer = implode(" | ", $dauer);
	
?>

<script type="text/javascript">	
	var i = 0;
//------------------------------PHP Strings an JS übergeben------------------------------
	var info_string='<?php echo $string_content; ?>';
	var dauer_string='<?php echo $string_dauer; ?>';
	
//------------------------------Strings in Arrays umwandeln------------------------------
	var infos = info_string.split("|");	
	var dauer = dauer_string.split("|");

//------------------------------Seite aktualisieren------------------------------	
	function reloadPage() 
	{
	location.reload(true);
 	} 
	setTimeout("reloadPage()", 60000);
	clearTimeout(); 

//------------------------------Ausgabe------------------------------		
	function anzeigen()
	{
	 if (i < infos.length) 
	 { i++; } else { i = 0; }
	 
	 document.getElementById('ausgabe').innerHTML = infos[i];
	 setTimeout('anzeigen()', dauer[i]); 
	}	
	anzeigen();
</script>
</body>
</html>
 
Zuletzt bearbeitet:
Wenn Du in Deine Fehlerkonsole schauen würdest, dann würde dort vermutlich stehen, dass Javascript die Zeilenumbrüche in Deinen Zeichenketten nicht abkann.
 
Hallo Albu
Danke für deine rasche Antwort. Ich habe noch nicht viel Ahnung von JS. Weist du wie man das Problem lösen könnte? Oder soll ich es im JavaScript Forum posten?
Ich arbeite mit TyneMCE und dieser benötigt soviel ich weiss die <p>-tags.
 
Zurück
Oben