Page 1 of 1
Imbedding PHP Into Javascript
Posted: Wed Dec 03, 2008 7:16 am
by ferox
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
Re: Imbedding PHP Into Javascript
Posted: Wed Dec 03, 2008 7:26 am
by onion2k
If $text contains anything that should work fine. Try viewing the source in the browser to see what's going on.
Re: Imbedding PHP Into Javascript
Posted: Wed Dec 03, 2008 7:36 am
by ferox
$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?
Re: Imbedding PHP Into Javascript
Posted: Wed Dec 03, 2008 7:49 am
by papa
Show us your js code?
Re: Imbedding PHP Into Javascript
Posted: Wed Dec 03, 2008 7:58 am
by ferox
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>
Re: Imbedding PHP Into Javascript
Posted: Wed Dec 03, 2008 8:17 am
by papa
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.
Re: Imbedding PHP Into Javascript
Posted: Fri Dec 05, 2008 12:39 pm
by SteveC
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.