Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 216
  • Last Modified:

building a multi-field search form in dreamweaver

Hi, I have a very little time to develop a new prototype and the results will have a heavy repercussion to the next stages of development on many of our next projects so I'd like to have your opinions on how to build this:

I'm building a search form in asp (javascript) with 5 dynamic lists using ultradev dreamweaver 5. A search result page will be built using the options selected in the form from that search page.

The problem is the following: each dynamic option list is supposed to update itself after any modification on another of these list is made. I suppose I'll have to put a "onChange" handler on my lists and call a javascript function that will execute the form's submit and recall that same page. Using my solution, I'll have to build 5 different record sets to dynamicly input the data in my lists. I wonder if there is a easier or more efficient way to do the job.

If my problem is not clear enough, I'll try to post more details...

Thank you in advance for your most needed advices...
0
Whistler
Asked:
Whistler
  • 3
1 Solution
 
AlfaNoMoreCommented:
OK, this is unproved and un-tested, but I'm putting it in here as a working idea....


<script language="javscript">
var allOptions = [];
allOptions[0]  = new selectObj('option 1');
allOptions[1]  = new selectObj('option 2');
allOptions[2]  = new selectObj('option 3');
allOptions[3]  = new selectObj('option 4');
allOptions[4]  = new selectObj('option 5');
allOptions[5]  = new selectObj('option 6');

allOptions[0].next[0]  = new selectObj('option 1.1');
allOptions[0].next[1]  = new selectObj('option 1.2');
allOptions[0].next[2]  = new selectObj('option 1.3');
allOptions[0].next[3]  = new selectObj('option 1.4');
allOptions[0].next[4]  = new selectObj('option 1.5');
allOptions[0].next[5]  = new selectObj('option 1.6');

allOptions[1].next[0]  = new selectObj('option 2.1');
allOptions[1].next[1]  = new selectObj('option 2.2');
allOptions[1].next[2]  = new selectObj('option 2.3');
allOptions[1].next[3]  = new selectObj('option 2.4');
allOptions[1].next[4]  = new selectObj('option 2.5');
allOptions[1].next[5]  = new selectObj('option 2.6');

allOptions[0].next[0].next[0]  = new selectObj('option 1.1.1');
allOptions[0].next[0].next[1]  = new selectObj('option 1.1.2');
allOptions[0].next[0].next[2]  = new selectObj('option 1.1.3');
allOptions[0].next[0].next[3]  = new selectObj('option 1.1.4');
allOptions[0].next[0].next[4]  = new selectObj('option 1.1.5');
allOptions[0].next[0].next[5]  = new selectObj('option 1.1.6');

function selectObj(value) {
    this.value = value;
    this.next  = [];
    return this;
}
   
</script>


More to follow ////
0
 
AlfaNoMoreCommented:
<select name="level_1" onChange="updateFollowingSiblings(1);">
</select>

<select name="level_2" onChange="updateFollowingSiblings(2);">
</select>

<select name="level_3" onChange="updateFollowingSiblings(3);">
</select>


<script language="javascript">
function updateFollowingSiblings(level) {
   var execThis = 'allOptions';
   for(i=0; i<level; i++) {
      var thisSelect = document.forms[0]['level_' + (i + 1)];
      execThis += '[' + thisSelect.options.selectedIndex + ']';
   }
   var thisArray = exec(execThis);
   for(i=level; i<4; i++) {
      thisSelect = document.forms[0]['level_' + i];
      // clear the next select box...
      for(j=thisSelect.length; j>0; j--) {
         thisSelect[j] = null;
      }
      // before adding the new options.
      for(k=0; k<thisArray.length; k++) {
         thisSelect[0] = new option(thisArray[k].value, k);
      }
      thisArray = // need to merge all of the next level's into one array here. Not sure how to do this, so will have to leave this here! Sorry...
   }
}
</script>
0
 
WhistlerAuthor Commented:
Thanks a lot!

I have some problems tough to implant your solution since I'm just fresh out of school. I'll do my best!
0
 
AlfaNoMoreCommented:
I'm sure you will run into problems with this. It's quite tricky to manage multiple relationships. I htink this multi-array based approach seems quite simple, but constructing the arrays will be quite messy!

Good luck with it though.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now