Problem mit Php und Javascript in Html

T

thomas215

Guest
Hallo,
ich möchte eine PHP-Datei für andere Seite (die kein PHP unterstützen) zur verfügung stellen.
Da es eine Liste von Terminen ist und diese sich immer wieder in der Länge ändert will ich nicht mit Iframes arbeiten.

ich habe jetzt versucht es mit document.write umzusetzen,
leider bis jetzt vergebens, hier 2 Beispiele was ich bis jetzt versucht habe:

CODE <? echo ("document.write('<table width=\"158\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td colspan=\"2\"><img src=\"wasgeht.gif\" alt=\"Was geht heute? Die Termine!\" width=\"158\" height=\"27\"></td></tr>');");
for ($i=0;$i<$count;$i++) {
echo ("document.write('<tr bgcolor=\"#EDEDED\"><td class=\"eventdate\">');");
echo ("document.write('timestamp2date($events[$i]['next_date'])');");
echo ("document.write('</td><td class=\"eventlocation\">Ort: ');");
echo ("document.write('$events[$i]['location']');");
echo ("document.write('</td></tr><tr><td colspan=\"2\" class=\"eventtitle\">');");
echo ("document.write('output_text(stripslashes($events[$i]['name']))');");
echo ("document.write('<br><span class=\"eventdescription\"><br><br><a href=\"');");
echo ("document.write('$home_url.\"action=details&eid=\".$events[$i]['id']');");
echo ("document.write('\">Weitere Informationen</a></span></td></tr>');");
}
echo ("document.write('</table>');"); ?>


Dabei bekomme ich die Fehlermeldung:

Zeile: 2
Zeichen:411
Fehler: ')'erwartet


Und wenn ich die PHP Datei selber aufrufe stehen auch nicht die Inhalte drin.

Als zweites habe ich folgendes versuch:


CODE <? echo ("document.write('<table width=\"158\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td colspan=\"2\"><img src=\"wasgeht.gif\" alt=\"Was geht heute? Die Termine!\" width=\"158\" height=\"27\"></td></tr>');");
for ($i=0;$i<$count;$i++) {
echo ("document.write('<tr bgcolor=\"#EDEDED\"><td class=\"eventdate\">');");
echo timestamp2date($events[$i]['next_date']);
echo ("document.write('</td><td class=\"eventlocation\">Ort: ');");
echo $events[$i]['location'];
echo ("document.write('</td></tr><tr><td colspan=\"2\" class=\"eventtitle\">');");
echo output_text(stripslashes($events[$i]['name']));
echo ("document.write('<br><span class=\"eventdescription\"><br><br><a href=\"');");
echo $home_url."action=details&eid=".$events[$i]['id'];
echo ("document.write('\">Weitere Informationen</a></span></td></tr>');");
}
echo ("document.write('</table>');"); ?>


Fehlermeldung:
Zeile: 2
Zeichen:375
Fehler ';'erwartet


Dort sind aber, wenn ich die PHP Datei einzeln aufrufe die Daten drin.

Kann mir irgend jemand helfen?
Ich weiß echt nicht mehr weiter
sad.gif
 
QUOTE
ich habe jetzt versucht es mit document.write umzusetzen,
...
Und wenn ich die PHP Datei selber aufrufe stehen auch nicht die Inhalte drin.



Ich glaube da gibt es ein Verständnisproblem:
Mit Javascript document.write kannst Du _nicht_ 'in die Datei' schreiben sondern nur 'in den Seiteninhalt im Browser'.
Die Datei selbst bleibt natürlich unverändert. Wenn Du Daten in eine Datei auf dem Server schreiben willst, müsstest Du das ebenfalls mit PHP machen.
 
Du erwartest um 2 Uhr eine Antwort...
wink.gif
Du hast Glück, denn Du bist gerade in meine Zigipause gefallen:
QUOTE echo ("document.write('timestamp2date($events[$i]['next_date'])');");

Wenn immer Du eine nontriviale Variable in " aufgelöst haben willst, musst Du sie in eckige Klammern verpacken. Ich vermute (ausgehend von Variante 1), dass das s von events das 410te Zeichen ist, ergo

QUOTE echo ("document.write('timestamp2date({$events[$i]['next_date']})');");

Das bedingt aber, dass Du eine int an eine Javascript Funktion übergibst. Ich vermute aber timestamp2date und (vor allem) output_text php Funktionen sind? Vor allem stripslashes lässt das logisch wirken und ergo ist die Lösung eher:

CODE
<? echo ("document.write('<table width=\"158\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td colspan=\"2\"><img src=\"wasgeht.gif\" alt=\"Was geht heute? Die Termine!\" width=\"158\" height=\"27\"></td></tr>');");
for ($i=0;$i<$count;$i++) {
echo ("document.write('<tr bgcolor=\"#EDEDED\"><td class=\"eventdate\">');");
echo ("document.write('".timestamp2date($events[$i]['next_date'])."');"); //php funktionen..
echo ("document.write('</td><td class=\"eventlocation\">Ort: ');");
echo ("document.write('{$events[$i]['location']}');"); //wrap the boodie
echo ("document.write('</td></tr><tr><td colspan=\"2\" class=\"eventtitle\">');");
echo ("document.write('".output_text(stripslashes($events[$i]['name']))."');"); //php funktionen..
echo ("document.write('<br><span class=\"eventdescription\"><br><br><a href=\"');");
echo ("document.write('$home_url.\"action=details&eid=\".{$events[$i]['id']}');");
echo ("document.write('\">Weitere Informationen</a></span></td></tr>');");
}
echo ("document.write('</table>');"); ?>

Ist der Punkt vor $events[$i]['id'] gewollt?

Och, den 2ten Versuch hab ich gar nicht angeschaut:
Das ist schon mal sehr gut, also das mit den PHP Funktionen ist klar, einziger Fehler im 2ten Versuch,

QUOTE <? echo ("document.write('<table width=\"158\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td colspan=\"2\"><img src=\"wasgeht.gif\" alt=\"Was geht heute? Die Termine!\" width=\"158\" height=\"27\"></td></tr>');");
for ($i=0;$i<$count;$i++) {
echo ("document.write('<tr bgcolor=\"#EDEDED\"><td class=\"eventdate\">');");
echo timestamp2date($events[$i]['next_date']);
echo ("document.write('</td><td class=\"eventlocation\">Ort: ');");
echo $events[$i]['location'];
echo ("document.write('</td></tr><tr><td colspan=\"2\" class=\"eventtitle\">');");
echo output_text(stripslashes($events[$i]['name']));
echo ("document.write('<br><span class=\"eventdescription\"><br><br><a href=\"');");
echo "document.write('".$home_url."action=details&eid=".$events[$i]['id']."');";
echo ("document.write('\">Weitere Informationen</a></span></td></tr>');");
}
echo ("document.write('</table>');"); ?>

Sonst gibst Du einfach sinnlosen Text an Javascript.

Ich versteh aber nicht, wieso Du den Text nicht einfach ausgibst, anstelle davon ihn doppelt zu verpacken.

PS @Mar-T, was das gemacht wird geht schon, es ist einfach obsolet. Das ganze JS könnte nach meinem Verständnis von der Situation weggelassen werden.
 
du solltest dich nicht zeilenweise mit den dokument.write rumschlagen.

statt den ganzen echos speicher die Ausgaben alle in einer Variable
und setze dann am ende ein echo dokument.. ein ...

wichtig dabei ist dann, das Du aus der Variable vor der ausgabe mit dem Javascript alle Zeilenumbrüche \n entfernst !!!
 
QUOTE (Alain Aubert @ Di 31.1.2006, 2:36)Och, den 2ten Versuch hab ich gar nicht angeschaut:
Das ist schon mal sehr gut, also das mit den PHP Funktionen ist klar, einziger Fehler im 2ten Versuch,

QUOTE <? echo ("document.write('<table width=\"158\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td colspan=\"2\"><img src=\"wasgeht.gif\" alt=\"Was geht heute? Die  Termine!\" width=\"158\" height=\"27\"></td></tr>');");
for ($i=0;$i<$count;$i++) {
echo ("document.write('<tr bgcolor=\"#EDEDED\"><td class=\"eventdate\">');");
echo timestamp2date($events[$i]['next_date']);
echo ("document.write('</td><td class=\"eventlocation\">Ort: ');");
echo $events[$i]['location'];
echo ("document.write('</td></tr><tr><td colspan=\"2\" class=\"eventtitle\">');");
echo output_text(stripslashes($events[$i]['name']));
echo ("document.write('<br><span class=\"eventdescription\"><br><br><a href=\"');");
echo "document.write('".$home_url."action=details&eid=".$events[$i]['id']."');";
echo ("document.write('\">Weitere Informationen</a></span></td></tr>');");
}
echo ("document.write('</table>');"); ?>

Sonst gibst Du einfach sinnlosen Text an Javascript.

Also das erste war glaube nicht so richtig.
Beim Zweiten bin ich ja der Lösung scheinbar schon näher.

Aber was ist daran falsch?
Wenn ich es so

CODE echo .$home_url."action=details&eid=".$events[$i]['id'];


Schreibe bekomme ich schon eine Fehlermeldung wenn ich die PHP Datei alleine aufrufe.


QUOTE
Ich versteh aber nicht, wieso Du den Text nicht einfach ausgibst, anstelle davon ihn doppelt zu verpacken.


Ich verstehe nicht wie du das meinst? Ich will die Daten auf Seite zur Verfügung stellen die kein PHP unterstützen.


QUOTE Ist der Punkt vor $events[$i]['id'] gewollt?

Denke mal schon. Ich schreibe die Datei nur um, also ich hatte sie schon so bekommen, und als normale PHP Datei, ohne document.write geht´s mit . also denke ich das er da hin muss.
 
Zurück
Oben