bbunlock Posted October 31, 2008 Share Posted October 31, 2008 Hi and first thanks for reading Ok I have a little ajax script that allows me to display content in divs, the content is like layers that are shown/hidden depending on the link clicked. the only problem with the script is that it loads all the divs at once, what I would like is that the content for each div is loaded when the link is clicked. below is the code im curently using javascript // CSS helper functions CSS = { // Adds a class to an element. AddClass: function (e, c) { if (!e.className.match(new RegExp("\\b" + c + "\\b", "i"))) e.className += (e.className ? " " : "") + c; }, // Removes a class from an element. RemoveClass: function (e, c) { e.className = e.className.replace(new RegExp(" \\b" + c + "\\b|\\b" + c + "\\b ?", "gi"), ""); } }; // Functions for handling tabs. Tabs = { // Changes to the tab with the specified ID. GoTo: function (contentId, skipReplace) { // This variable will be true if a tab for the specified // content ID was found. var foundTab = false; // Get the TOC element. var toc = document.getElementById("toc"); if (toc) { var lis = toc.getElementsByTagName("li"); for (var j = 0; j < lis.length; j++) { var li = lis[j]; // Give the current tab link the class "current" and // remove the class from any other TOC links. var anchors = li.getElementsByTagName("a"); for (var k = 0; k < anchors.length; k++) { if (anchors[k].hash == "#" + contentId) { CSS.AddClass(li, "current"); foundTab = true; break; } else { CSS.RemoveClass(li, "current"); } } } } // Show the content with the specified ID. var divsToHide = []; var divs = document.getElementsByTagName("div"); for (var i = 0; i < divs.length; i++) { var div = divs[i]; if (div.className.match(/\bcontent\b/i)) { if (div.id == "_" + contentId) div.style.display = "block"; else divsToHide.push(div); } } // Hide the other content boxes. for (var i = 0; i < divsToHide.length; i++) divsToHide[i].style.display = "none"; // Change the address bar. if (!skipReplace) window.location.replace("#" + contentId); }, OnClickHandler: function (e) { // Stop the event (to stop it from scrolling or // making an entry in the history). if (!e) e = window.event; if (e.preventDefault) e.preventDefault(); else e.returnValue = false; // Get the name of the anchor of the link that was clicked. Tabs.GoTo(this.hash.substring(1)); }, Init: function () { if (!document.getElementsByTagName) return; // Attach an onclick event to all the anchor links on the page. var anchors = document.getElementsByTagName("a"); for (var i = 0; i < anchors.length; i++) { var a = anchors[i]; if (a.hash) a.onclick = Tabs.OnClickHandler; } var contentId; if (window.location.hash) contentId = window.location.hash.substring(1); var divs = document.getElementsByTagName("div"); for (var i = 0; i < divs.length; i++) { var div = divs[i]; if (div.className.match(/\bcontent\b/i)) { if (!contentId) contentId = div.id; div.id = "_" + div.id; } } if (contentId) Tabs.GoTo(contentId, true); } }; // Hook up the OnLoad event to the tab initialization function. window.onload = Tabs.Init; // Hide the content while waiting for the onload event to trigger. var contentId = window.location.hash || "#Introduction"; if (document.createStyleSheet) { var style = document.createStyleSheet(); style.addRule("div.content", "display: none;"); style.addRule("div" + contentId, "display: block;"); } else { var head = document.getElementsByTagName("head")[0]; if (head) { var style = document.createElement("style"); style.setAttribute("type", "text/css"); style.appendChild(document.createTextNode("div.content { display: none; }")); style.appendChild(document.createTextNode("div" + contentId + " { display: block; }")); head.appendChild(style); } } Html <!-- start of tabbed options menu --> <ol id="toc"> <li><a href="#Themes">Themes</a></li> <li><a href="#Ringtones">Ringtones</a></li> <li><a href="#Wallpapers">Wallpapers</a></li> </ol> <!-- start of Themes section --> <div class="tab-content" id="Themes"> Do mysql query for themes do the php code to display the themes found in mysql query </div> <!-- start of Ringtones section --> <div class="tab-content" id="Ringtones"> Do mysql query for ringtones do the php code to display the ringtones found in mysql query </div> <!-- start of Wallpapers section --> <div class="tab-content" id="Wallpapers"> Do mysql query for wallpapers do the php code to display the wallpapers found in mysql query </div> Could anyone help me out here please, I have no knowledge of ajax at all. regards wayne Link to comment https://forums.phpfreaks.com/topic/130821-displaying-results-from-myql-database/ Share on other sites More sharing options...
bbunlock Posted November 1, 2008 Author Share Posted November 1, 2008 I have found another script that is almost what I want but needs some additions done to it, I will post this as a new topic instead of posting to this one. regards wayne Link to comment https://forums.phpfreaks.com/topic/130821-displaying-results-from-myql-database/#findComment-680014 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.