Solved

Convert PHP script to C# or Javascript

Posted on 2008-10-23
4
783 Views
Last Modified: 2012-05-05
The attached code snippet happens on load of the web page. Can anyone tell me how to convert it to Javascript or C#? Bascially, what I have done is loaded some list items in an array. Then, based on the current page, the HTML is created when the page loads.
// maybe you need to add the directory name(s) too

      $items = array(

          array("link"=>"php.html", "label"=>"PHP scripts"),

          array("link"=>"tut.html", "label"=>"Tutorial"),

          array("link"=>"css.html", "label"=>"CSS template"),

          array("link"=>"code.html", "label"=>"Code examples"));

           

      $menu = '';

      foreach ($items as $val) {

          if  ($_SERVER['SCRIPT_NAME'] == $val['link']) {

          $menu .= '<li><span>' .$val['label'].'</span></li>';
 

	  } else {

	  $menu .= '<li><a href="'.$val['link'].'" >'.$val	   ['label'].'</a></li>';

	  }

      }

      echo $menu;

Open in new window

0
Comment
Question by:computerstreber
  • 2
4 Comments
 
LVL 49

Accepted Solution

by:
Ryan Chong earned 300 total points
ID: 22794014
I saw your pages are in .html, so I decided to use javascript to generate the menu.
<script language="javascript">

	//Ver 1.0

	function getFileName(fpath, removeQueryingString, delimiter) {

		if (fpath==null) fpath = window.location.href;

		if (delimiter==null) delimiter = "/";

		var tmp = fpath;

		if (tmp.lastIndexOf("?") > -1) {

			tmp = tmp.substring(0,tmp.lastIndexOf("?"));		

		}

		tmp = tmp.substring(tmp.lastIndexOf(delimiter)+1);

		if (removeQueryingString != null) {

			if (removeQueryingString) {

				var tmpArr = tmp.split("?");

				tmp = tmpArr[0];

			}

		}

		return tmp;

	}
 

	function generateMenu() {

		var arrlink = new Array(3);

		var arrlabel = new Array(3);

		arrlink[0] = "php.html";

		arrlabel[0] = "PHP scripts";

		arrlink[1] = "tut.html";

		arrlabel[1] = "Tutorial";

		arrlink[2] = "css.html";

		arrlabel[2] = "CSS template";

		arrlink[3] = "code.html";

		arrlabel[3] = "Code examples";

		

		var menu = "";

		for (var i=0;i<arrlink.length;i++) {

			if  (getFileName() == arrlink[i]) {

				menu += "<li><span>" + arrlabel[i] + "</span></li>";

			} else {

				menu += "<li><a href='" + arrlink[i] + "'><span>" + arrlabel[i] + "</span></a></li>";

			}

		}

		return menu;

	}

	

	document.write(generateMenu());

</script>

Open in new window

0
 
LVL 21

Assisted Solution

by:naspinski
naspinski earned 200 total points
ID: 22795230
asp.net/c#
<!--asp.net-->

<asp:DropDownList ID="ddl" runat="server" />
 

// C# -- put this in your page_load

if (!IsPostBack)

{

    Dictionary<string, string> items = new Dictionary<string, string>();

    items.Add("php.html", "PHP scripts");

    items.Add("tut.html", "Tutorial");

    items.Add("css.html", "CSS template");

    items.Add("code.html", "Code examples");
 

    foreach (var item in items)

        ddl.Items.Add(new ListItem(item.Value, item.Key));

}

Open in new window

0
 
LVL 21

Assisted Solution

by:naspinski
naspinski earned 200 total points
ID: 22795283
actually, I made that more complicated than I needed to, keep the same asp.net of:

<asp:DropDownList ID="ddl" runat="server" />

and put this in your codebehind:
if(!IsPostBack)

{

    ddl.Items.Add(new ListItem("php.html", "PHP scripts"));

    ddl.Items.Add(new ListItem("tut.html", "Tutorial"));

    ddl.Items.Add(new ListItem("css.html", "CSS template"));

    ddl.Items.Add(new ListItem("code.html", "Code examples"));

}

Open in new window

0
 
LVL 3

Author Closing Comment

by:computerstreber
ID: 31509541
both of these were awesome examples. However, I found the javascript to render much better.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The task A number given should be formatted for easy reading by separating digits into triads. Format must be made inline via JavaScript, i.e., frameworks / functions are not welcome. So let’s take a number like this “12345678.91¿ and format i…
Boost your ability to deliver ambitious and competitive web apps by choosing the right JavaScript framework to best suit your project’s needs.
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

932 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now