Include Befehl im Template System benutzen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
amE
Mitglied
Beiträge: 8
Registriert: 08.08.2007 14:33

Beitrag von amE »

Also der PHP - Teil dazu ist das:

Code: Alles auswählen

//JAVASCRIPT
$val = 0;
$sql_obj = "SELECT * FROM `objectives_selection` WHERE collaboration_id=".$_SESSION['collaborationid']."";
$result_obj = mysql_query($sql_obj);

while ( $row_obj = mysql_fetch_row($result_obj) )
{
	$pos=$row_obj[2] * 6 - 6;
	$template->assign_block_vars('javascript', array(
 		'POS' => $pos,
    		'ROW' => $row_obj[3]
	));
	$val=$val+6;
}
//JAVASCRIPTENDE
Allerdings ist daran ja nichts falsches.. ich denke der Javascript compiler interpretiert einfach die <!-- BEGIN --> und <!-- END --> Tags falsch :/ aber das mit dem "Firebug"?! werd ich mal nachschaun, wusste nicht das es so ein Tool überhaupt gibt. Das komische ist das die Wertübergabe nur mit {VARIABLE} funktioniert. Da ich jedoch eine Schleife habe bringt mir das nichts.

Ein link dazu gibts leider nicht da ich es lokal laufen habe.

Gruß, danke

edit...

Also der Firebug meinte:
missing : after property id
[Break on this error] document.getElementById({javascript.POS}+{javascript.ROW}).click(); \n
javascript_obj.js (line 10)
Das dort der Fehler ist hab ich auch schon gemerkt aber sonst sagt mir das auch nicht mehr :(
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Das sieht fast so aus als würde das Template gar nicht geparst, denn von den Variablenbezeichnungen sollte der Browser genau wie von den <!-- BEGIN xx --> <!-- END xx --> nichts sehen, die werden vom Parser verarbeitet und danach entfernt. Da müsstest du einen Fehler bei der Einbindung gemacht haben. Wie ist das ganze denn genau aufgebaut, wie bindest du das Template ein, wie sieht das Template insgesamt aus? Falls du das Skript in einem extra js hast dann wird das so nicht funktionieren, du musst das in einem Template haben, damit der Parser die nötigen Ersetzungen vornehmen kann.
KB:template_syntax KB:template_system
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
amE
Mitglied
Beiträge: 8
Registriert: 08.08.2007 14:33

Beitrag von amE »

Also ich glaub nicht das es an meinem Templateaufruf liegt da ich schon viele Dateien mit dem Template-System gemacht habe und die alle funktionieren. Sobald ich diesen Javascriptteil ausklammer funktioniert das Script auch. Sprich die Block aufrufe im HTML Bereich werden ohne Probleme aufgerufen, nur der eine im Javascriptteil lässt das Javascript abbrechen - der HTML teil tut trotzdem..
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Mag sein, aber aus der Firebug Fehlermeldung geht doch eindeutig hervor, dass

Code: Alles auswählen

{javascript.POS}+{javascript.ROW}
offensichtlich beim Browser ankommt. Das darf aber wenn die Datei durch den Parser geschickt wurde nicht sein. Wenn da nichts drin stünde, dann müssten diese Stellen leer sein. Also muss das in irgend einer Weise ein Fehler bei der Templateverwendeung sein - oder dieser Text wird überhaupt nicht geparst, weil er sich nicht in einem Template befindet?
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
amE
Mitglied
Beiträge: 8
Registriert: 08.08.2007 14:33

Beitrag von amE »

Ja das kann sein da ich ihn ja mit <script ... src=".."> einbinde und nicht direkt im script habe. Allerdings bin ich davon ausgegangen das dies kein Unterschied macht da dieser Aufruf ja wie ein include wirkt, der Javascriptteil also direkt dort "eingefügt" wird.
Wobei ich glaube das ich auch schon versucht habe es direkt einzupflegen *hmm* .. naja werds gleich noch mal versuchen.. vllt hab ich ja doch Erfolg.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Das ist ein großer Unterschied, denn diese Einbindung wird erst vom Browser durchgeführt, das muss aber schon vom Server gemacht werden, denn nur der hat die Daten, die er einsetzen soll. Notfalls musst du das Skript ein wenig umgestalten und die dynamisch eingefügten Dinge in der Templatedatei von PHP einfügen lassen (in JavaScript Variablen) und dann diese Variablen in dem externen Skript verwenden.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „Coding & Technik“