PDA

View Full Version : php in javascript


pbcommun
08-21-2005, 02:04 PM
Somebody has to know a way. Ive posted this on four forums with no response.

Im trying to use a javascript menu on my new site, which is SMF. The part that contains the links is a javascript file, and i dont know how i can use php links in it.

<!--

/*
Configure menu styles below
NOTE: To edit the link colors, go to the STYLE tags and edit the ssm2Items colors
*/
YOffset=150; // no quotes!!
XOffset=0;
staticYOffset=30; // no quotes!!
slideSpeed=20 // no quotes!!
waitTime=100; // no quotes!! this sets the time the menu stays out for after the mouse goes off it.
menuBGColor="black";
menuIsStatic="yes"; //this sets whether menu should stay static on the screen
menuWidth=150; // Must be a multiple of 10! no quotes!!
menuCols=2;
hdrFontFamily="verdana";
hdrFontSize="2";
hdrFontColor="white";
hdrBGColor="#170088";
hdrAlign="left";
hdrVAlign="center";
hdrHeight="15";
linkFontFamily="Verdana";
linkFontSize="2";
linkBGColor="white";
linkOverBGColor="#FFFF99";
linkTarget="_top";
linkAlign="Left";
barBGColor="#444444";
barFontFamily="Verdana";
barFontSize="2";
barFontColor="white";
barVAlign="center";
barWidth=20; // no quotes!!
barText="SIDE MENU"; // <IMG> tag supported. Put exact html for an image to show.

///////////////////////////

// ssmItems[...]=[name, link, target, colspan, endrow?] - leave 'link' and 'target' blank to make a header
ssmItems[0]=["Menu"] //create header
ssmItems[1]=["Dynamic Drive", "http://google.com", ""]
ssmItems[2]=["What's New", "http://www.dynamicdrive.com/new.htm",""]
ssmItems[3]=["What's Hot", "http://www.dynamicdrive.com/hot.htm", ""]
ssmItems[4]=["Message Forum", "http://www.codingforums.com", "_new"]
ssmItems[5]=["Submit Script", "http://www.dynamicdrive.com/submitscript.htm", ""]
ssmItems[6]=["Link to Us", "http://www.dynamicdrive.com/link.htm", ""]

ssmItems[7]=["FAQ", "http://www.dynamicdrive.com/faqs.htm", "", 1, "no"] //create two column row
ssmItems[8]=["Email", "http://www.dynamicdrive.com/contact.htm", "",1]

ssmItems[9]=["External Links", "", ""] //create header
ssmItems[10]=["JavaScript Kit", "http://www.javascriptkit.com", ""]
ssmItems[11]=["Freewarejava", "http://www.freewarejava.com", ""]
ssmItems[12]=["Coding Forums", "http://www.codingforums.com", ""]

buildMenu();

//-->

How can i use php links? The full script is here- http://www.dynamicdrive.com/dynamicindex1/davidmenu.htm

Ive seen it done on this phpBB forum- http://www.phpbb-design.com/phpBB2_styles_demo/theme/?s=155

jack
08-22-2005, 02:57 AM
If you mean that you want to call a php file (script) from the menu. There should be no problem just replacing the "http://google.com" with "http://yoursite.com/yourscript.htm".

I can not fully understand what you mean by php links.

pbcommun
08-22-2005, 05:29 PM
sorry, what i mean by php links, is for example, my log out link, is- <a href="', $scripturl, '?action=logout;sesc=', $context['session_id'], '">Log Out</a>

Which is php :)

The problem is, using as an external .js file wont allow me to use php, because it will be ignored.

Putting it IN the php file gets me errors in php, so how can i make this script php friendly?
<script type="text/javascript"> /* Configure menu styles below NOTE: To edit the link colors, go to the STYLE tags and edit the ssm2Items colors */ YOffset=150; // no quotes!! XOffset=0; staticYOffset=30; // no quotes!! slideSpeed=20 // no quotes!! waitTime=100; // no quotes!! this sets the time the menu stays out for after the mouse goes off it. menuBGColor="black"; menuIsStatic="yes"; //this sets whether menu should stay static on the screen menuWidth=150; // Must be a multiple of 10! no quotes!! menuCols=2; hdrFontFamily="verdana"; hdrFontSize="2"; hdrFontColor="white"; hdrBGColor="#170088"; hdrAlign="left"; hdrVAlign="center"; hdrHeight="15"; linkFontFamily="Verdana"; linkFontSize="2"; linkBGColor="white"; linkOverBGColor="#FFFF99"; linkTarget="_top"; linkAlign="Left"; barBGColor="#444444"; barFontFamily="Verdana"; barFontSize="2"; barFontColor="white"; barVAlign="center"; barWidth=20; // no quotes!! barText="SIDE MENU"; // <IMG> tag supported. Put exact html for an image to show. /////////////////////////// // ssmItems[...]=[name, link, target, colspan, endrow?] - leave 'link' and 'target' blank to make a header ssmItems[0]=["Menu"] //create header ssmItems[1]=["Dynamic Drive", "http://www.dynamicdrive.com", ""] ssmItems[2]=["What's New", "http://www.dynamicdrive.com/new.htm",""] ssmItems[3]=["What's Hot", "http://www.dynamicdrive.com/hot.htm", ""] ssmItems[4]=["Message Forum", "http://www.codingforums.com", "_new"] ssmItems[5]=["Submit Script", "http://www.dynamicdrive.com/submitscript.htm", ""] ssmItems[6]=["Link to Us", "http://www.dynamicdrive.com/link.htm", ""] ssmItems[7]=["FAQ", "http://www.dynamicdrive.com/faqs.htm", "", 1, "no"] //create two column row ssmItems[8]=["Email", "http://www.dynamicdrive.com/contact.htm", "",1] ssmItems[9]=["External Links", "", ""] //create header ssmItems[10]=["JavaScript Kit", "http://www.javascriptkit.com", ""] ssmItems[11]=["Freewarejava", "http://www.freewarejava.com", ""] ssmItems[12]=["Coding Forums", "http://www.codingforums.com", ""] buildMenu(); </script>

all i know is i should add \ before any '
But even after doing so, no good.

Word of advice, allowing html on forums really starts to get annoying. ;)

jack
08-23-2005, 02:50 AM
You can tell the server that you want .js files to be treated like php. This way the files will be first interpreted before sent to the client's browser.

You should add this line in .htaccess file in order to tell apache to consider .js files as php.

AddType application/x-httpd-php .js

pbcommun
08-23-2005, 05:02 PM
Thank jack!

Actually, to help get around this problem, i simply included the js in the php file, ended the php session before the javascript, opened it again for each link, then closed it for each link, then opened it again for the rest of the document.