0

I have the following code:

 <?php
 
 if ($x == 1){

 ?>
   <b>Some html...</b>
   <?php
             }
    else if ($x==2){ ?>

<b> Other html...</b>
<?php
}
?>

Now I would like to have two links below (a href) and somehow pass the variable $x (so Link1 passes x=1 and Link2 passes x=2) in order to load the relevant bit of code from if statement. I know I can pass $x using the form and then test its value and load required a bit of code, but I would like to do it smoothly, without reloading the page. I think that jQuery could help it, but I have no idea how to do it. Any ideas greatly appreciated.

1
  • Is the content of the ‘some’/‘other’ HTML actually dependent on client-side actions at all? If you just want to switch between one and the other you can wrap each in a div and show/hide each div to switch between the two. Commented Apr 14, 2010 at 22:44

2 Answers 2

2

Forgetting about PHP for the moment, you're looking for jQuery's .load():

<div id="container"></div>
<a href="javascript:void(0);" onclick="loadContent(1);">Load 1</a>
<a href="javascript:void(0);" onclick="loadContent(2);">Load 2</a>

<script type="text/javascript">
loadContent = function(content){
   $('#container').load(content + '.html');
}
</script>

The above code (not tested, but it's at least close) will insert the contents of 1.html, or 2.html (on the server) into the div with id="container".

There are plenty of tutorials, like the one linked in pygorex1' answer, that cover various ways of doing this.

Sign up to request clarification or add additional context in comments.

4 Comments

That's quite nice. What if I would like to load Javascript as well (not to the container, but entire document)? Should it be something like document.load(content + '.js');?
OK,thanks a lot. One more thing - the code you provided doesnt load the file actually. When I change content + '.html' to "1.html" it does. Maybe a syntax error?
Not entirely sure why that would be. I'm sure you'll figure it out.
Yes, missing '' in loadContent('1').
0

What you're looking for is AJAX - the ability to load server content using background HTTP requests in Javascript. Here's a tutorial I've found useful for implementing AJAX using JQuery:

http://articles.sitepoint.com/article/ajax-jquery

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.