It appears you have not yet registered with DEVPPL. To register please click here... (it's fast, easy and free!)

Forum

Log In Sponsors
Board index Programming JavaScript Forum Script-archive

Show, Hide, Call File and Write to Element script - AJAX

Show, Hide, Call File and Write to Element script - AJAX

Postby rangana on Sat Jan 10, 2009 2:26 pm

Code Title: Show, Hide, Call File and Write to Element script

Author Name/notes : Raymond Angana aka rangana

Description : I was inspired by this post: post49170.html#p49170

This is a simple and very light script that show,hide (multiple) element(s), calls file and append to the element and writes text nodes to (multiple) element(s).

The script gives you the advantage to show/hide/write (multiple) element(s) at a time, by passing it as an argument to the available methods as explained below. It also gives you the flexibility to create text nodes from external file (via AJAX).

Code:
Code: Select all
<script type="text/javascript">
/**
Title: Show, Hide, CallFile and Write to Element script
Author: Raymond Angana - [username = rangana in devppl.com/forum]
Created: 1/10/09
This notice must stay intact for legal use


Installation configuration:
hidelayer() - pass the id(s) of the layer you want to hide. Could work with multiple IDs

showlayer() - pass the id(s) of the layer you want to show. Could work with multiple IDs.

callFile() - first argument should be the URL of the file to call. The next argument is the ID of the layer you want the content of the file to show.

writetolayer() - first argument should be the text to write. The next argument(s) is the ID of the layer(s) you want the text be written. Could work with multiple IDs.
*/
var ray={
   hidelayer:function(){
      if(this.hidelayer.arguments.length>1){
         for(var i=0;i<this.hidelayer.arguments.length;i++)
            this.showHide(this.hidelayer.arguments[i],'none');
      }
      else this.showHide(this.hidelayer.arguments[0],'none');
   },
   
   showlayer:function(){
      if(this.showlayer.arguments.length>1){
         for(var i=0;i<this.showlayer.arguments.length;i++)
            this.showHide(this.showlayer.arguments[i],'');
      }
      else this.showHide(this.showlayer.arguments[0],'');
   },
   
   getID:function(el){
      return document.getElementById(el);
   },
   
   el:'',
   
   callFile:function(){
      this.el=this.el==''?this.callFile.arguments[1]:this.el;
      var xmlHttp;
      try{
         // Firefox, Opera 8.0+, Safari
         xmlHttp=new XMLHttpRequest();
      }
      catch (e){
         // Internet Explorer
         try{
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
         }
         catch (e){
            try{
               xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e){
               alert("Your browser does not support AJAX!");
               return false;
            }
         }
      }
            
      xmlHttp.onreadystatechange=function(){
         if(xmlHttp.readyState==4){
            ray.showlayer(ray.el);
            ray.getID(ray.el).innerHTML=xmlHttp.responseText;
         }
      }
                  
      xmlHttp.open("POST",this.callFile.arguments[0],true);
      xmlHttp.send(null);
   },
   
   writetolayer:function(){
      if(this.writetolayer.arguments.length>2){
         for(var i=1;i<this.writetolayer.arguments.length;i++){
            this.showlayer(this.writetolayer.arguments[i]);
            this.getID(this.writetolayer.arguments[i]).innerHTML=
this.writetolayer.arguments[0];
            }
      }
      else{
         this.showlayer(this.writetolayer.arguments[1]);
         this.getID(this.writetolayer.arguments[1]).innerHTML=
this.writetolayer.arguments[0];
      }
   },
   
   showHide:function(el,disp){
      this.getID(el).style.display=disp;
   }
}
</script>
<span id="newlayer" style="position:absolute;">layer-text</span>
<br><br><br>
<a href="#" onclick="ray.hidelayer('newlayer');return false;">hide layer</a> |
<a href="#" onclick="ray.showlayer('newlayer');return false;">show layer</a> |
<a href="#" onclick="ray.callFile('myfile.php','newlayer');return false;">layer-text #1</a> |
<a href="#" onclick="ray.writetolayer('layer-text #2','newlayer');return false;">layer-text #2</a>


Methods available on ray object are as follows:

hidelayer() - pass the id(s) of the layer you want to hide. Could work with multiple IDs.

showlayer() - pass the id(s) of the layer you want to show. Could work with multiple IDs.

callFile() - first argument should be the URL of the file to call. The next argument is the ID of the layer you want the content of the file to show.

writetolayer() - first argument should be the text to write. The next argument(s) is the ID of the layer(s) you want the text be written. Could work with multiple IDs.

Hope this helps.
User avatar
rangana
500+ Club
 
Posts: 935
Joined: Wed Feb 27, 2008 5:14 am
Location: Cebu City Philippines

Re: Show, Hide, Call File and Write to Element script - AJAX

Postby Tomi on Sat Jan 10, 2009 4:58 pm

Any chance of a demo, I don't know what it does. :p
User avatar
Tomi
500+ Club
 
Posts: 925
Joined: Mon Jun 26, 2006 6:51 pm
Location: Essex, England

Re: Show, Hide, Call File and Write to Element script - AJAX

Postby rangana on Sun Jan 11, 2009 4:21 am

Just copy and paste the code on your page and you'll know what it does.

If you're still having problem, please don't hesitate to let me know.

I'll show a demo.
User avatar
rangana
500+ Club
 
Posts: 935
Joined: Wed Feb 27, 2008 5:14 am
Location: Cebu City Philippines

Re: Show, Hide, Call File and Write to Element script - AJAX

Postby Tomi on Sun Jan 11, 2009 5:15 am

Ooh, very nice. I guess you can use this for an entire navigation, call an entire pages content - so you have a website where the user never actually goes to a new page? Will probably use this for my portfolio. :)

Thanks
User avatar
Tomi
500+ Club
 
Posts: 925
Joined: Mon Jun 26, 2006 6:51 pm
Location: Essex, England

Re: Show, Hide, Call File and Write to Element script - AJAX

Postby rangana on Sun Jan 11, 2009 6:03 am

No problem, just keep the notice intact.
User avatar
rangana
500+ Club
 
Posts: 935
Joined: Wed Feb 27, 2008 5:14 am
Location: Cebu City Philippines

Re: Show, Hide, Call File and Write to Element script - AJAX

Postby Tomi on Sat Feb 07, 2009 4:02 am

Hey rangana, having a bit of trouble making this do what I want. What I want is that when a thumbnail image is clicked a larger image is displayed to the right along with some text below.

See what I'm trying to accomplish here: http://designprohibited.com/webdesign.php

The smaller image below the large image on the right I am using just to exemplify another layer right now so what I want is when the page loads only the large image on the right can be seen. When the user clicks the derby runners thumbnail to the left the smaller image shows instead of the large one.
User avatar
Tomi
500+ Club
 
Posts: 925
Joined: Mon Jun 26, 2006 6:51 pm
Location: Essex, England

Re: Show, Hide, Call File and Write to Element script - AJAX

Postby rangana on Sat Feb 07, 2009 4:25 am

That's another script.

You should post a different thread highlighting your desire.
User avatar
rangana
500+ Club
 
Posts: 935
Joined: Wed Feb 27, 2008 5:14 am
Location: Cebu City Philippines


Who is online

Users browsing this forum: No registered users and 0 guests