Solved

Collapse & expand PHP query menu

Posted on 2011-09-13
5
293 Views
Last Modified: 2012-05-12
I am displaying list of events using this query...

<?php

$dbhandle = new mysqli('localhost', 'localhost', 'UN', 'PW');
$result = $dbhandle->query("SELECT e.*, DATE_FORMAT(`eventdate`,'%Y') as y FROM `events` e WHERE (`title` IS NOT NULL) AND Trim(`title`)!='' ORDER BY `eventdate` DESC");

$curyear = null;
while ($row = $result->fetch_object())
{
      if( $curyear!=$row->y )
      {
            $curyear=$row->y;
            echo '<b>', $curyear, '</b><br />';
      }
        echo '&nbsp;&nbsp;', $row->eventdate, '&nbsp;', $row->title, '<br />';
}
$dbhandle->close();
?>

You can see the results on this test page here...

http://www.anjoman.co.uk/previous-events-test2.php

What I want to do is just show the dates initially (collapsed) then, when you click a year the title's show beneath the selected year.

Is this possible to do?
0
Comment
Question by:BrighteyesDesign
  • 3
5 Comments
 
LVL 8

Expert Comment

by:PranjalShah
Comment Utility
You will have to use some javascript for that...here is a good example


http://www.randomsnippets.com/2008/02/12/how-to-hide-and-show-your-div/
0
 
LVL 51

Expert Comment

by:HainKurt
Comment Utility
create something like this
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>

<style>
div.header{font-weight:bold; border; cursor:pointer;}
div.content{margin:10px; display:none;}
</style>

<script>
$(document).ready(function() {
  $("div.header").click(function(){
    var divContentID = this.id.replace("Header","Content");
    var divContent = $("#" + this.id.replace("Header","Content"));
    divContent.toggle();
  });
});
</script>

<table width="100%" border="0" cellpadding="5" cellspacing="0" class="top15">
<tbody>
<tr>
	<td>
	<div class=header id=divHeader2010>2010</div>
	<div class=content id=divContent2010>
	2010-03-27&nbsp;Anjoman's Norouz Gala 1<br>
	2010-03-27&nbsp;Anjoman's Norouz Gala 2<br>
	2010-03-27&nbsp;Anjoman's Norouz Gala 3<br>
	</div>
	<div class=header id=divHeader2009>2009</div>
	<div class=content id=divContent2009>2009-12-05&nbsp;Anjoman 118  Shabeh Yalda Party!</div>
	<div class=header id=divHeader2005>2005</div>
	<div class=content id=divContent2005>2005-03-12&nbsp;Iranian New Year (1384) Party</div>
	<div class=header id=divHeader2004>2004</div>
	<div class=content id=divContent2004>2004-12-11&nbsp;SHABE YALDA 2005</div>
	</td>
</tr>
</tbody>
</table>

Open in new window

0
 
LVL 51

Accepted Solution

by:
HainKurt earned 500 total points
Comment Utility
something like this php code will produce above result (hopefully):
<?php
$dbhandle = new mysqli('localhost', 'localhost', 'UN', 'PW');
$result = $dbhandle->query("SELECT e.*, DATE_FORMAT(`eventdate`,'%Y') as y FROM `events` e WHERE (`title` IS NOT NULL) AND Trim(`title`)!='' ORDER BY `eventdate` DESC");

$curyear = null;
while ($row = $result->fetch_object())
{
      if( $curyear!=$row->y )
      {
            if ($curyear != null) echo '</div>';
            $curyear=$row->y;
            echo '<div class=header id=divHeader', $curyear, '>', $curyear, '</div>';
            echo '<div class=content id=divContent', $curyear, '>'
      }
        echo '&nbsp;&nbsp;', $row->eventdate, '&nbsp;', $row->title, '<br />';
}
echo '</div>';
$dbhandle->close();
?>

Open in new window

0
 
LVL 51

Expert Comment

by:HainKurt
Comment Utility
above php code + first 16 lines from my post (36531329) will do what you want...
0
 

Author Closing Comment

by:BrighteyesDesign
Comment Utility
Perfect! thanks
0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

Introduction Many web sites contain image galleries; a common design for these galleries includes a page with a collection of thumbnail images.  You can click on each of the thumbnail images to see the larger version of the image.  This is easily i…
Foreword (July, 2015) Since I first wrote this article, years ago, a great many more people have begun using the internet.  They are coming online from every part of the globe, learning, reading, shopping and spending money at an ever-increasing ra…
The viewer will learn how to count occurrences of each item in an array.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…

772 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

11 Experts available now in Live!

Get 1:1 Help Now