?
Solved

Holding data between form posts

Posted on 2004-10-07
5
Medium Priority
?
169 Views
Last Modified: 2013-12-25
Hey guys,

I have a page that contains a number of dropdowns and text boxes
Two of the dropdowns interact with each other i.e. Dropdown one controls the content of dropdown two. [This content is read from a Sybase database]

I have done this using javascript and here is a code snippet

#CGI bit
my $co = new CGI;
my $currenturl = $co->url;
..
$co->popup_menu( -name=>'project',
                 -default=>'$project',
                 -size=>1,
                 -width=>8,
                 -values=>['', 1,2,3],
                 -onchange=>"GetSubComponents('$currenturl',this.value);",                
                 ),

#javascript bit
function GetSubComponents(url,projectid){
var urlTo;
if(projectid < 1)
{
     urlTo = url;
}
else
{
     urlTo = url + "?ProjectID="+projectid;
}
window.location.href = urlTo;
}

when the page is reloaded it checks the ProjectID parameter and changes the content of the second dropdown.

this stuff works fine the only problem is I need to keep the data that was on the page prior to the page being redirected.
How do I do this?

Vinnie
0
Comment
Question by:VincentLawlor
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
5 Comments
 
LVL 1

Accepted Solution

by:
Levan_Kiladze earned 2000 total points
ID: 12257164
you can do it using cookies..
in CGI bit edit this way:
#CGI bit
my $co = new CGI;
my $currenturl = $co->url;
..
$co->popup_menu( -name=>'project',
                 -default=>'$project',
                 -size=>1,
                 -width=>8,
                 -values=>['', 1,2,3],
                 -onchange=>"GetSubComponents('$currenturl',this.value); SaveData()",                
                 ),


now in JAVASCRIPT bit add function like this:
//----------------------------------------------------------
function SaveData()
{
       SetCookie(document.forms[0].project,document.forms[0].project.selectedIndex,1);
}


function SetCookie(cookieName,cookieValue,nDays)
 {
 var today = new Date();
 var expire = new Date();
 if (nDays==null || nDays==0) nDays=1;
 expire.setTime(today.getTime() + 3600000*24*nDays);
 document.cookie = cookieName+"="+escape(cookieValue)
                 + ";expires="+expire.toGMTString();
}

function GetCookie(cookiename)

 {
 var cookiestring=""+document.cookie;
 var index1=cookiestring.indexOf(cookiename);
 if (index1==-1 || cookiename=="") return "";
 var index2=cookiestring.indexOf(';',index1);
 if (index2==-1) index2=cookiestring.length;
 return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}



function getvalue()
{
      if(GetCookie(document.forms[0].project) != "")
     {
         document.forms[0].project.selectedIndex = GetCookie(document.forms[0].project);
     }

}

// ----------------------------------------------------


finally, add onload event in <body> TAG..
<body onload=getvalue()>







the second way of solving your problem is using hidden fields in your form, which stores selected index.
0
 
LVL 51

Expert Comment

by:ahoffmann
ID: 12312862
> .. I need to keep the data that was on the page prior to the page being redirected.
which data?
wher do you need it?
0

Featured Post

The Orion Papers

Are you interested in becoming an AWS Certified Solutions Architect?

Discover a new interactive way of training for the exam.

Question has a verified solution.

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

Introduction This tutorial will give you a fast look what you can do with WhizBase. I expect you already know how to work with HTML at least, and that you understand the basics of the internet and how the internet works. WhizBase is a server-s…
If you get a (Blue Screen of Death), your system writes a small file called a minidump. Your first step is to make certain your computer is setup to record memory dumps. Right click My Computer, choose properties. Click on the advanced tab, an…
Learn the basics of lists in Python. Lists, as their name suggests, are a means for ordering and storing values. : Lists are declared using brackets; for example: t = [1, 2, 3]: Lists may contain a mix of data types; for example: t = ['string', 1, T…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…
Suggested Courses

801 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