The most clear way is to assign a single click handler:

HTML:

<div class="contents">
    <div id="abstract">Bla bla bla bla </div>
    <div id="somethingelse">Bla bla bla bla </div>
</div>

<ul class="links">
    <li><a href="#abstract">How to write an Abstract</a></li>
    <li><a href="#somethingelse">How to write something else</a></li>
</li>


And in the document's <head>:
(hope google groups doesn't break it too much)

<script type="text/javascript">
$(document).ready(function(){

    $('.links a').click(function(){  //get all <a> elements inside the
element with class "links"
         var id = $(this).attr('href').substring(1); //get the
content's id
         $(id).slideToggle(); //toggle visibility of the contents
    });

});

A glance at the docs (docs.jquery.com) should give you an insight of
what's going on.

As for the PHP, you can't actually pass a Javascript variable to it.
PHP is parsed/executed server-side, way before javascript. To get data
on-demand based on a javascript variable you need to use Ajax.
(docs.jquery.com/Ajax)

- ricardo

</script>

On Nov 11, 5:01 pm, Oli <[EMAIL PROTECTED]> wrote:
> Thanks Mike for your reply.
>
> Okay, I have implemented this in a static mode:
>
> http://www.uniquebrand.co.uk/education/index.php
>
> Under Online resources if you click on these two links
> How to write an Abstract
> How to Write a Good Essay
>
> You will see the effect that I am trying to achieve. It does serve my
> purpose but the links and their IDs are not dynamically generated. I
> want to do the same kind of slide up and down for dynamically
> generated content. Does it explain my goal clearly?
>
> Sorry, I am not a native english speaker. So, apologies for any
> confusion.
>
> Many Thanks :)
>
> On Nov 11, 6:54 pm, "Michael Geary" <[EMAIL PROTECTED]> wrote:
>
> > Could we back up a bit and have you describe very simply how you want this
> > page to work? Leave out all of the implementation details like the IDs and
> > the JavaScript code. Simple HTML is OK if that helps describe what you want.
>
> > It looks like you're pretty far off track on the implementation (no offense
> > intended! We'll help you get back on track), but it would be hard to suggest
> > a better approach without understanding what this will look like to the
> > visitor to your site and how they will interact with it.
>
> > Thanks,
>
> > -Mike
>
> > > From: Oli
>
> > > Hi guys,
>
> > > I am really excited about what I can do with JQuery, I just
> > > managed to finish one simple demo which basically allows a
> > > new css div to slide open when people click on a link. The
> > > initially technique was all fine except everything there is
> > > static. I then tried something dynamic where I got myself stuck.
>
> > > Let me explain a bit more, for each of the following
> > > hyperlinks I'd like to load the id from the database. So,
> > > they will look as follows:
>
> > > <a href="#" id="123" onclick="setID(123)">How to ride a
> > > bike</a> <a href="#" id="124" onclick="setID(124)">How to
> > > play football</a>
>
> > > Now, obviously the content for each different link will be different.
> > > So, I thought of using a javascript function called setID()
> > > that takes the id from the link and pass it on to the jquery
> > > functinons. So rather than having to check for each and every
> > > links like this:
>
> > >  $("#link1").click(..............
> > >  $("#link2").click(............
> > >  $("#link3").click(.............
>
> > > and so forth and so on, this little trick will do the job
> > > where one funtion will take care of all the links and their
> > > values and hence no repeat.
>
> > > $((i)).click(    -----
>
> > > where i is the global variable that stores the link ID.
>
> > > It works to some extent but not entirely right. I used an
> > > alert(i); call to check the value and this is what I am
> > > finding difficult to comprehend.
>
> > > say, i click on first link whose id is 123, a popup window shows #123.
> > > it then slides open the show div.
> > > if i want to close it I can just hit the hide me button and
> > > it hides the div, no problem.
> > > all fine uptil here.
>
> > > Now, the interesting and the difficult bit that I dont have
> > > any clue whatsoever is when I click on any part of the web
> > > page and find the div slides open automatically. I printed
> > > the ID and it occured to me because I didnot initialise the
> > > global variable after hiding the div first time, the next
> > > click event is using the old value. So, I created a fucntion
> > > called init(), all it does it set the global variable i to null.
>
> > > But it doesnot resolve my problem. I would also like to use
> > > php and database in order to populate content for  show div.
> > > Any idea how passing javascript variable to php script will
> > > work in this context?
>
> > > Here is my code:
>
> > > <script type="text/javascript">
>
> > > var i = "";
>
> > > function setID(x){
> > >  i = "#"+x;
> > > }
>
> > > function init(){
> > >  i = "";
> > > }
>
> > > $(document).ready(
> > >  function(){
>
> > >   $("#showResource").hide();
> > >   $((i)).click(
> > >    function(){
> > >    alert(i);
> > >    init();
> > >    $("#showResource").slideDown(800);
> > >    return false;
> > >    }
> > >   );
>
> > >   $("#hideMe").click(
> > >    function(){
> > >     $("#showResource").slideUp(800);
> > >     return false;
> > >    }
> > >   );
> > >  }
> > > );
> > > </script>
>
> > > <style type="text/css">
> > > #show{border:1px #cfdfef solid; width:96%;
> > > background:url(images/ hide_me.gif);
> > > background-position:right bottom; background-repeat:no-
> > > repeat; margin-bottom:10px; color:#333333; font-family:Arial,
> > > Helvetica, sans-serif; font-size:11px; padding:10px;
> > > display:inline; background:#ddf8ff;}
>
> > > </style>
>
> > > <div id="show"> show this content <button id="hideMe">hide me</
> > > button></div> <!-- show div ends-->
>
> > > <!--
> > > Next job to use php script instead of static text <div id="show">
>
> > > <?php
>
> > > $sql = SELECT * from test where id = i (javascript variable);
> > > // any idea how to achieve this? did anyone try?
>
> > > ?>
>
> > >  <button id="hideMe">hide me</button></div> <!-- show div ends-->
>
> > > </div>
> > > -->
>
> > > <a href="#" id="123" onclick="setID(123)">How to write an
> > > Abstract</a> <a href="#" id="124" onclick="setID(124)">How to
> > > write an Abstract</
> > > a>- Hide quoted text -
>
> > - Show quoted text -

Reply via email to