PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!
Moderator: General Moderators
ferox
Forum Newbie
Posts: 3 Joined: Wed Dec 03, 2008 6:53 am
Post
by ferox » Wed Dec 03, 2008 7:16 am
Hello,
I am aware that PHP is sever side and javascript is client side so therefore the php is processed before the javascript even sees it so is there away to get around it
my natural instinct would be to do this
Code: Select all
var marqueecontent='<nobr><span class="newsflash"><?php echo $text; ?></span></nobr>'
But this displays nothing
is there a way around this problem
Thanks
onion2k
Jedi Mod
Posts: 5263 Joined: Tue Dec 21, 2004 5:03 pm
Location: usrlab.com
Post
by onion2k » Wed Dec 03, 2008 7:26 am
If $text contains anything that should work fine. Try viewing the source in the browser to see what's going on.
ferox
Forum Newbie
Posts: 3 Joined: Wed Dec 03, 2008 6:53 am
Post
by ferox » Wed Dec 03, 2008 7:36 am
$text defianatly contains something ive put it else where on the page and it echos fine...
ive also put plain text where $text was and that works fine also?
papa
Forum Regular
Posts: 958 Joined: Wed Aug 27, 2008 3:36 am
Location: Sweden/Sthlm
Post
by papa » Wed Dec 03, 2008 7:49 am
Show us your js code?
ferox
Forum Newbie
Posts: 3 Joined: Wed Dec 03, 2008 6:53 am
Post
by ferox » Wed Dec 03, 2008 7:58 am
js code for ya its just a free download thing though
Code: Select all
<script language="JavaScript1.2">
/*
Cross browser Marquee script- © Dynamic Drive (http://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="600px"
//Specify the marquee's height
var marqueeheight="22px"
//Specify the marquee's marquee speed (larger is faster 1-10)
var marqueespeed=1
//configure background color:
var marqueebgcolor="#000000"
//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='<nobr><span class="newsflash"><?php echo $text; ?></span></nobr>'
////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>
papa
Forum Regular
Posts: 958 Joined: Wed Aug 27, 2008 3:36 am
Location: Sweden/Sthlm
Post
by papa » Wed Dec 03, 2008 8:17 am
I'm not in the mood to look through all the code, but: document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100px;left:-9000px">'+marqueecontent+'</span>')
This is where you echo your text and it's pretty hidden if I'm not entirely off.
SteveC
Forum Commoner
Posts: 44 Joined: Thu Dec 04, 2008 2:39 pm
Location: Lansing, MI
Post
by SteveC » Fri Dec 05, 2008 12:39 pm
ferox wrote: Hello,
I am aware that PHP is sever side and javascript is client side so therefore the php is processed before the javascript even sees it so is there away to get around it
my natural instinct would be to do this
Code: Select all
var marqueecontent='<nobr><span class="newsflash"><?php echo $text; ?></span></nobr>'
But this displays nothing
is there a way around this problem
Thanks
Hi ferox,
Questions.
1. Does it work if you actually write text manually into the marqueecontent? IE.
Code: Select all
var marqueecontent='<nobr><span class="newsflash">just some test text</span></nobr>'
2. If so, does this work?
Code: Select all
var marqueecontent='<nobr><span class="newsflash"><?php echo 'just some test text'; ?></span></nobr>'
3. If it does, what's going on? Either $test is blank, or it has some characters that are breaking the JS. For example - you may need to escape the text?
Code: Select all
var marqueecontent='<nobr><span class="newsflash"><?php echo escape($text); ?></span></nobr>'
I may have used the wrong function there, if anybody cares to correct me that'd be great.
Steve.