Solved

javascript image array from database

Posted on 2010-11-12
6
810 Views
Last Modified: 2012-06-22
I have a small image gallery where I'm using javascript to show the images in div's and go through the pages.  Right now it's hardcoded to a set of images and that works.

However, i have the images on the server with the file path in a table on the database, what is the best way to make this a dynamic array so it updates with the images from the database when i select a category?
<select name="catDropDown" id="catDropDown" onchange="javascript:getCategory()">
					      <option value="-" selected="selected">Select a Category</option>
					      <option value="bellTower">Bell Tower</option>

				        </select>
				      </p>
				    </div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div id="r1c1"></div>
                    <div id="r1c2"></div>
                    <div id="r1c3"></div>
                    
                    <div id="r2c1"></div>
                    <div id="r2c2"></div>
                    <div id="r2c3"></div>
                    
                    
                    <p>
                    <script type="text/javascript"><!--
                    var bellTowerArray = new Array();
                    
                    bellTowerArray[0]	= "bellTower01.jpg";
                    bellTowerArray[1]	= "bellTower02.jpg";
                    bellTowerArray[2]	= "bellTower03.jpg";
                    bellTowerArray[3]	= "bellTower04.jpg";
                    bellTowerArray[4]	= "bellTower05.jpg";
                    bellTowerArray[5]	= "bellTower06.jpg";
                    bellTowerArray[6]	= "bellTower07.jpg";
                    bellTowerArray[7]	= "bellTower08.jpg";
                    bellTowerArray[8]	= "bellTower09.jpg";
                    bellTowerArray[9]	= "bellTower10.jpg";
                    bellTowerArray[10]	= "bellTower11.jpg";
                    bellTowerArray[11]	= "bellTower12.jpg";
                    bellTowerArray[12]	= "bellTower13.jpg";
                    bellTowerArray[13]	= "bellTower14.jpg";
                    bellTowerArray[14]	= "bellTower15.jpg";
                    bellTowerArray[15]	= "bellTower16.jpg";
                   
                    
                    var currArray = new Array();
                    
                    function getCategory(){
                        if(document.getElementById("catDropDown").selectedIndex == 1)
                            currArray = bellTowerArray;
                        else if(document.getElementById("catDropDown").selectedIndex == 2)
                            currArray = fountainArray;
                        
                        if(document.getElementById("catDropDown").selectedIndex > 0){
                            displayImages(0);
                            doPagination();
                        } // end if
                    } // end of getCategory
                    
                    
                    function displayImages(start){
                        // r1c1
                        if(!(start > currArray.length-1))
                            document.getElementById("r1c1").innerHTML = "<a id=\"r1c1_a\" href=\"images/" + currArray[start] + "\" rel=\"lightbox\" title=\"This is the static description\"><img src=\"images/th_" + currArray[start] + "\" id=\"r1c1_img\" width=\"160\" height=\"160\" alt=\"This is the static description\" title=\"This is the static description\" /><"+"/a>";
                        else
                            document.getElementById("r1c1").innerHTML = "";
                            
                        // r1c2	
                        if(!(start+1 > currArray.length-1))
                            document.getElementById("r1c2").innerHTML = "<a id=\"r1c2_a\" href=\"images/" + currArray[start+1] + "\" rel=\"lightbox\" title=\"This is the static description\"><img src=\"images/th_" + currArray[start+1] + "\" id=\"r1c2_img\" width=\"160\" height=\"160\" alt=\"This is the static description\" title=\"This is the static description\" /><"+"/a>";
                        else
                            document.getElementById("r1c2").innerHTML = "";
						
						// r1c3
                        if(!(start+2 > currArray.length-1))
                            document.getElementById("r1c3").innerHTML = "<a id=\"r1c3_a\" href=\"images/" + currArray[start+2] + "\" rel=\"lightbox\" title=\"This is the static description\"><img src=\"images/th_" + currArray[start+2] + "\" id=\"r1c3_img\" width=\"160\" height=\"160\" alt=\"This is the static description\" title=\"This is the static description\" /><"+"/a>";
                        else
                            document.getElementById("r1c3").innerHTML = "";
						
                            
                        // r2c1	
                        if(!(start+3 > currArray.length-1))
                            document.getElementById("r2c1").innerHTML = "<a id=\"r2c1_a\" href=\"images/" + currArray[start+3] + "\" rel=\"lightbox\" title=\"This is the static description\"><img src=\"images/th_" + currArray[start+3] + "\" id=\"r2c1_img\" width=\"160\" height=\"160\" alt=\"This is the static description\" title=\"This is the static description\" /><"+"/a>";
                        else
                            document.getElementById("r2c1").innerHTML = "";
                        
                        // r2c2	
                        if(!(start+4 > currArray.length-1))
                            document.getElementById("r2c2").innerHTML = "<a id=\"r2c2_a\" href=\"images/" + currArray[start+4] + "\" rel=\"lightbox\" title=\"This is the static description\"><img src=\"images/th_" + currArray[start+4] + "\" id=\"r2c2_img\" width=\"160\" height=\"160\" alt=\"This is the static description\" title=\"This is the static description\" /><"+"/a>";
                        else
                            document.getElementById("r2c2").innerHTML = "";
						
						// r2c3
                        if(!(start+5 > currArray.length-1))
                            document.getElementById("r2c3").innerHTML = "<a id=\"r2c3_a\" href=\"images/" + currArray[start+5] + "\" rel=\"lightbox\" title=\"This is the static description\"><img src=\"images/th_" + currArray[start+5] + "\" id=\"r2c3_img\" width=\"160\" height=\"160\" alt=\"This is the static description\" title=\"This is the static description\" /><"+"/a>";
                        else
                            document.getElementById("r2c3").innerHTML = "";
										
                    
                    } // end of displayImages
                    
                    function doPagination(){
                        var numpages = (currArray.length / 6) +1;
                        var numleft = currArray.length % 6;
                        
                        document.getElementById("pagination").innerHTML = "";
                        
                        for(i=0; i<numpages-1; i++){
                            document.getElementById("pagination").innerHTML += "<span onclick='displayImages(" + i*6 + ")'>" + (i+1) + "<"+"/span>";
                        } // end for
                        
                        if(numpages <=1)
                            document.getElementById("pagination").innerHTML = "";
                    } // end pages

Open in new window

0
Comment
Question by:newmie22
  • 3
  • 3
6 Comments
 
LVL 109

Expert Comment

by:Ray Paseur
ID: 34122601
Not sure where you stand on data base programming, so I will just start with what I think might be the explanation.

Right now you have this array of image names:
var bellTowerArray = new Array();
bellTowerArray[0] = "bellTower01.jpg";

You would generate those array elements in PHP with code something like this:

...In JavaScript
var bellTowerArray = new Array();
<?php
$sql = "SELECT imagename FROM myTable ORDER BY imagename LIMIT 31";
$res = mysql_query($sql) or die( mysql_error() );
$num = 0;
while ($row = mysql_fetch_assoc($res))
{
    echo "bellTowerArray[$num] = \"$row['imagename']\";";
    $num++;
}
// END OF PHP
?>

Open in new window

0
 

Author Comment

by:newmie22
ID: 34122662
I'm pretty new, just learning it all.  Would using var bellTowerArray make it static?  There are numerous categories that are in the database which can be choose from the drop down and thus bring up those images for that category.
0
 
LVL 109

Expert Comment

by:Ray Paseur
ID: 34122975
Still trying to get the question clear in my mind.  Would this paraphrase it in layman's terms?

"I have a web site with lots of pictures.  The pictures are listed in a data base and they are tagged by categories, like 'fish' and 'birds.'  I want to write a PHP script that will let the client see a dropdown select box so they can choose the category.  Let's say they choose 'fish.'  Then when they submit the form, I want to show them all the pictures of fish."
0
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 

Author Comment

by:newmie22
ID: 34123040
yes, exactly
0
 
LVL 109

Accepted Solution

by:
Ray Paseur earned 500 total points
ID: 34123446
OK, I think the best answer I can give you in the short term is to suggest a good learning resource for PHP and data bases.  Buy this book and work through the examples - in a month you will be light years ahead.  It is very readable and comes with a downloadable code library that you can copy and paste.
http://www.sitepoint.com/books/phpmysql4/

Your general design pattern for what you want to do would be to query the data base and get all the category information in a query results set.  Then you would use a while() statement to iterate over the result set, generating <option> tags for each category.  When the client submits the form, you would be able to find the selected option in the request array element that corresponds to the <select> name attribute.
0
 

Author Closing Comment

by:newmie22
ID: 34279247
thanks, found full solution myself
0

Featured Post

Does Powershell have you tied up in knots?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

Question has a verified solution.

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

This article will give core knowledge of JavaScript and will head in to your first JavaScript program. I am Durvesh Naik and I am here to deal with this series of JavaScript. I will teach you JavaScript in part wise , as its quite boring to read big…
Introduction This article is intended for those who are new to PHP error handling (https://www.experts-exchange.com/articles/11769/And-by-the-way-I-am-New-to-PHP.html).  It addresses one of the most common problems that plague beginning PHP develop…
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
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)

773 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