php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 07-11-2009, 12:07
activexactive
 Registrierter Benutzer
Links : Onlinestatus : activexactive ist offline
Registriert seit: Aug 2009
Beiträge: 37
activexactive befindet sich auf einem aufstrebenden Ast
Standard [gelöst] smarty und javascript

Hey nochmal zusammen...
Ich weiß eure Hilfe immer zu würdigen. Daher hab ich nochmal eine kleine Frage. Ich weiß auch nicht ob ich hier
damit überhaupt richtig bin. Wenn nicht, einfach löschen oder verschieben.

Ich versuche eine Schleife von Smarty in einen javascript text ticker einzubinden.
Dabei hab ich folgendes versucht. Javascript mit {literal} getrennt und da wo die Susgabe von Javascript stattfindet den Smartycode zugefügt.
Das ganze ohne die Smarty Tags funktioniert mit literal prima. Nur sobald die Schleife dort drin ist, kommt garnix mehr. Woran kann das liegen ?
Zur veranschaulichung hier mal mein kleines Script.

edit: Da wo der Inhalt reinsoll ist unmittelbar am Anfang des scriptes bei der variable var marqueecontent=''

HTML-Code:
{literal}
<script language="JavaScript1.2">

/*
Cross browser Marquee script- © Dynamic Drive (www.dynamicdrive.com)
For full source code, 100's more DHTML scripts, and Terms Of Use, visit http://www.dynamicdrive.com
Credit MUST stay intact
*/

//Specify the marquee's width (in pixels)
var marqueewidth="500px"
//Specify the marquee's height
var marqueeheight="25px"
//Specify the marquee's marquee speed (larger is faster 1-10)
var marqueespeed=2
//configure background color:
var marqueebgcolor="#DEFDD9"
//Pause marquee onMousever (0=no. 1=yes)?
var pauseit=1

//Specify the marquee's content (don't delete <nobr> tag)
//Keep all content on ONE line, and backslash any single quotations (ie: that\'s great):

var marqueecontent='{/literal}  {foreach item=row from=$news_data}{$row.text}            {/foreach}   {literal} '


////NO NEED TO EDIT BELOW THIS LINE////////////
marqueespeed=(document.all)? marqueespeed : Math.max(1, marqueespeed-1) //slow speed down by 1 for NS
var copyspeed=marqueespeed
var pausespeed=(pauseit==0)? copyspeed: 0
var iedom=document.all||document.getElementById
if (iedom)
document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100px;left:-9000px">'+marqueecontent+'</span>')
var actualwidth=''
var cross_marquee, ns_marquee

function populate(){
if (iedom){
cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee
cross_marquee.style.left=parseInt(marqueewidth)+8+"px"
cross_marquee.innerHTML=marqueecontent
actualwidth=document.all? temp.offsetWidth : document.getElementById("temp").offsetWidth
}
else if (document.layers){
ns_marquee=document.ns_marquee.document.ns_marquee2
ns_marquee.left=parseInt(marqueewidth)+8
ns_marquee.document.write(marqueecontent)
ns_marquee.document.close()
actualwidth=ns_marquee.document.width
}
lefttime=setInterval("scrollmarquee()",20)
}
window.onload=populate

function scrollmarquee(){
if (iedom){
if (parseInt(cross_marquee.style.left)>(actualwidth*(-1)+8))
cross_marquee.style.left=parseInt(cross_marquee.style.left)-copyspeed+"px"
else
cross_marquee.style.left=parseInt(marqueewidth)+8+"px"

}
else if (document.layers){
if (ns_marquee.left>(actualwidth*(-1)+8))
ns_marquee.left-=copyspeed
else
ns_marquee.left=parseInt(marqueewidth)+8
}
}

if (iedom||document.layers){
with (document){
document.write('<table border="0" cellspacing="0" cellpadding="0"><td>')
if (iedom){
write('<div style="position:relative;width:'+marqueewidth+';height:'+marqueeheight+';overflow:hidden">')
write('<div style="position:absolute;width:'+marqueewidth+';height:'+marqueeheight+';
background-color:'+marqueebgcolor+'" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">')
write('<div id="iemarquee" style="position:absolute;left:0px;top:0px"></div>')
write('</div></div>')
}
else if (document.layers){
write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee" bgColor='+marqueebgcolor+'>')
write('<layer name="ns_marquee2" left=0 top=0 onMouseover="copyspeed=pausespeed" 
onMouseout="copyspeed=marqueespeed"></layer>')
write('</ilayer>')
}
document.write('</td></table>')
}
}
</script>

{/literal}
Wäre Klasse wenn ihr mit Tipps geben könnt was da schief läuft.

Viele Grüße und danke im vorraus.

Geändert von activexactive (07-11-2009 um 12:10 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 07-11-2009, 14:25
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Das language-Attribut des Script-Tags ist deprecated. Verwende type!
Was heißt "kommt gar nix mehr"? Keine Fehlermeldung und gar keine Ausgabe?
Mit Zitat antworten
  #3 (permalink)  
Alt 07-11-2009, 14:58
activexactive
 Registrierter Benutzer
Links : Onlinestatus : activexactive ist offline
Registriert seit: Aug 2009
Beiträge: 37
activexactive befindet sich auf einem aufstrebenden Ast
Standard

ja,ich weiß der tag..den hatte ich auch schonmal geänert gehabt. aber durch das ständige copy&paste und rumprobieren blieb es dann beim alten.

alsoja, wenn ich die smarty schleife entferne und text dafür hinmache, wird das js geladen. nur sobald die schleife drin ist, kommt garnichts mehr. keine fehlermeldung, der rest des templates wird geladen.nur halt an der stelle wo das js steht, wird es nicht angezeigt.
Mit Zitat antworten
  #4 (permalink)  
Alt 07-11-2009, 15:55
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Ändert sich etwas, wenn die Schleife auf einer eigenen Zeile steht?
Gibt die Schleife überhaupt was aus?
Wie testest du "JS nicht geladen"?
Mit Zitat antworten
  #5 (permalink)  
Alt 07-11-2009, 16:07
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Also wenn mich meine mittlerweile etwas eingerosteten Smarty-Kenntnisse nicht im Stich lassen, so ist das Template korrekt. Hast du denn mal im PHP-Code dir $news_data ausgeben lassen? Ich vermute mal, dass die leer ist.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #6 (permalink)  
Alt 07-11-2009, 16:58
activexactive
 Registrierter Benutzer
Links : Onlinestatus : activexactive ist offline
Registriert seit: Aug 2009
Beiträge: 37
activexactive befindet sich auf einem aufstrebenden Ast
Standard

hey.. wenn ich das ganze ohne javascript laufen lasse, bekomme ich meine ausgaben.. habe auch zuerst gedacht das da nichts rauskommt. aber dem ist leider nicht so.da sind 3 eingetragene news die müssten angezeigt werden.

das smarty script müssteso korrekt sein es sei denn durch die implementierung in javascript das da irgendwas nicht funzt.

wenn ich die füßchenvon der javascriptvariable von '' in "" änder,funktioniert zwar das javascript aber ich bekomme den codeinhalt von smarty zu sehenstatt meines textes.. zumindest war so meine kontrolle gewesen

edit: naja, ich teste es indem ich es ausprobiere.. ist der smarty code nicht drin stattdessen normaler text, funzt es.

die schleife hat inhalt..ja
Mit Zitat antworten
  #7 (permalink)  
Alt 07-11-2009, 18:29
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Welchen Inhalt hat die Schleife? Wenn du zum Beispiel Strings ausgibst, die ' enthalten, erzeugst du damit invalides Javascript. Dein Browser müsste das mit einer Fehlermeldung quittieren. Tut er das?

Versuch mal das:
Code:
<script type="text/javascript">
{literal}
....
{/literal}
{foreach item=row from=$news_data} foo {/foreach}
{literal}
...
{/literal}
</script>
Ansonsten bliebe dir noch, alle { und } im Javascript-Code durch {ldelim} und {rdelim} zu ersetzen und auf {literal} zu verzichten.
Mit Zitat antworten
  #8 (permalink)  
Alt 07-11-2009, 21:16
activexactive
 Registrierter Benutzer
Links : Onlinestatus : activexactive ist offline
Registriert seit: Aug 2009
Beiträge: 37
activexactive befindet sich auf einem aufstrebenden Ast
Standard

hi.. mit deinem foo erhalte ich 2 ausgaben ..nämlich foo foo

der inhalt der schleife ist wie folgt:

1. News. Ich bin eine wichtige Information.<br />

direkt aus dem quelltext kopiert.

nun hab ich in die db geschaut um zu sehen was die tabelle an
inhalt hat. du hast recht es enthielt zwar kein '
aber ein <br /> und das mochte er wohl nicht.
wieso komme ich nicht auf solch einfache sachen? *amkopfkratz..

ohje..danke für die hilfe.ihr seid klasse

PS: das mit dem foo merk ich mir mal direkt *hehe..danke

edit: achso..zuerst hatte ich es auch mit {ldelim} und {rdelim} probiert. hat aber nicht geklappt.

Geändert von activexactive (07-11-2009 um 21:31 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[gelöst] Suchzeile mittels PHP und javascript DarthFly HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 3 25-10-2009 23:34
[gelöst] JavaScript Fehler mangu HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 5 13-10-2009 20:11
gelöst. Lennie Archiv / Trash 1 30-08-2006 00:35
Javascript in smarty Victorious PHP Developer Forum 7 26-12-2005 12:40
Probleme mit Smarty + JavaScript F4llen4ngel PHP Developer Forum 1 29-03-2004 11:46

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:11 Uhr.