473,406 Members | 2,343 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,406 software developers and data experts.

Auto populate the Dropdown List

Hi All,

I'm training in Servlets, JSP and JavaScript,

I have a web page in which there's a "StudentName" textbox and
below it is a "Names" Dropdown list. Initially the Textbox is empty
and the Dropdown doesnt have any items..

The requirement is that as soon as one goes on typing the letters in
the StudentName-textbox the corresponding matching names have to appear
in the DD located below.
Like say if I just key in 'J' then all the student-names from the
"Names - table(backend-MySql)" starting with 'J' have to appear
in the DD, say if I'm typing in "Jo" then just names such as
"John"," Joanna" etc need appear ..this is much like when we
send emails ...wherein automatically the matching entries for the
typed-in address show up from our address book in a dropdown list below
the "To" textbox..

Can anyone help me with suggestions regarding this...

P.S:- Is it also possible through Java/JavaScript to link a particular
control directly to some database table?
For e.g. can I directly link a DD to the backend-table and have just
the dropdown refreshed every time there was an addition/deletion to the
table and not the whole page..

Thanks,

Jan 11 '07 #1
11 7343
Google "javascript + live search". Pretty much what you'll be doing
is: as they type you will be making a request to a server for all
entries in a database, flat file... that are similar to what is in your
text area. You then want to empty and recreate the options in your
dropdown list. You can probably find code samples that use JSP and
JavaScript to do it.
eureka wrote:
Hi All,

I'm training in Servlets, JSP and JavaScript,

I have a web page in which there's a "StudentName" textbox and
below it is a "Names" Dropdown list. Initially the Textbox is empty
and the Dropdown doesnt have any items..

The requirement is that as soon as one goes on typing the letters in
the StudentName-textbox the corresponding matching names have to appear
in the DD located below.
Like say if I just key in 'J' then all the student-names from the
"Names - table(backend-MySql)" starting with 'J' have to appear
in the DD, say if I'm typing in "Jo" then just names such as
"John"," Joanna" etc need appear ..this is much like when we
send emails ...wherein automatically the matching entries for the
typed-in address show up from our address book in a dropdown list below
the "To" textbox..

Can anyone help me with suggestions regarding this...

P.S:- Is it also possible through Java/JavaScript to link a particular
control directly to some database table?
For e.g. can I directly link a DD to the backend-table and have just
the dropdown refreshed every time there was an addition/deletion to the
table and not the whole page..

Thanks,
Jan 11 '07 #2
eureka wrote on 11 jan 2007 in comp.lang.javascript:
Is it also possible through Java/JavaScript to link a particular
control directly to some database table?
Javascript has nothing to do with Java but the name.

What is a "control"?
What would be the use linking such thing to a database table?

Clientside javascript usually cannot reach a [serverside] database,
if we are talking web pages [do you?]

This NG is for Javascript, and if not specifically stated otherwise,
clientside javascript on/in an internet web page is ment.

--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)
Jan 11 '07 #3
Curtis.Dani...@gmail.com wrote:
Google "javascript + live search". Pretty much what you'll be doing
is: as they type you will be making a request to a server for all
entries in a database, flat file... that are similar to what is in your
text area. You then want to empty and recreate the options in your
dropdown list. You can probably find code samples that use JSP and
JavaScript to do it.
Hi
Thanks for your reply..

You've suggested that as the user types in some letters in the textbox
request be made to the server for the matching database entries, well I
am not sure if this can be acheived through Client Side
JavaScript(CSJS) or with JSP either coz if I' m not wrong the JSP file
that you run from the browser is converted into a java servlet, then
the servlet is compiled to a .class file and then its run, but unlike
Javascript the code in Jsp in not executed everytime an event occurs on
the Html page, it'l only be executed first on the page-request and then
again on every refresh for that page.
What I mean is every time the user types in something or the other in
the textbox I think atleast the Jsp/CSJS code wont be able to make a
request to the server for the records..well I'm not very sure about
this since I'm still learning ...if anyone has a further idea as to how
this can be achieved please suggest,

What I had in mind was that maybe through JSP I could on page request
itself get a connection to the database and collect all the Names from
the Names-table and maybe store them in a hidden field on my page and
then on every onFocus() event of the textbox I could retrieve the text
keyed in the textbox into some variable and compare the first letter
of that text with the first letter of all the names present in my
hidden field one by one and then whatever names match I just populate
them into the DD ..but this achieves only half the purpose..besides on
every onFocus() event the JavaScript function will be called which will
do the matching, I think that'l probably cause overhead !

I've also been suggested AJAX, but never worked with it before so I'd
be grateful if any1 provides any suggestions regarding the same.

Jan 11 '07 #4
Curtis.Dani...@gmail.com wrote:
Google "javascript + live search". Pretty much what you'll be doing
is: as they type you will be making a request to a server for all
entries in a database, flat file... that are similar to what is in your
text area. You then want to empty and recreate the options in your
dropdown list. You can probably find code samples that use JSP and
JavaScript to do it.
Hi
Thanks for your reply..

You've suggested that as the user types in some letters in the textbox
request be made to the server for the matching database entries, well I
am not sure if this can be acheived through Client Side
JavaScript(CSJS) or with JSP either coz if I' m not wrong the JSP file
that you run from the browser is converted into a java servlet, then
the servlet is compiled to a .class file and then its run, but unlike
Javascript the code in Jsp in not executed everytime an event occurs on
the Html page, it'l only be executed first on the page-request and then
again on every refresh for that page.
What I mean is every time the user types in something or the other in
the textbox I think atleast the Jsp/CSJS code wont be able to make a
request to the server for the records..well I'm not very sure about
this since I'm still learning ...if anyone has a further idea as to how
this can be achieved please suggest,

What I had in mind was that maybe through JSP I could on page request
itself get a connection to the database and collect all the Names from
the Names-table and maybe store them in a hidden field on my page and
then on every onFocus() event of the textbox I could retrieve the text
keyed in the textbox into some variable and compare the first letter
of that text with the first letter of all the names present in my
hidden field one by one and then whatever names match I just populate
them into the DD ..but this achieves only half the purpose..besides on
every onFocus() event the JavaScript function will be called which will
do the matching, I think that'l probably cause overhead !

I've also been suggested AJAX, but never worked with it before so I'd
be grateful if anyone provides any suggestions regarding the same.

Jan 11 '07 #5
Evertjan. wrote:
Javascript has nothing to do with Java but the name.

What is a "control"?
What would be the use linking such thing to a database table?

Clientside javascript usually cannot reach a [serverside] database,
if we are talking web pages [do you?]

This NG is for Javascript, and if not specifically stated otherwise,
clientside javascript on/in an internet web page is ment.

--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)
Hi there,
Thanks for your reply.

By control I actually meant some Html form component..like a DropDown
List ..

I have on my web page a DD displaying the names of all the students
studying in an institute, but I need that at runtime say if any of
these students were to be deleted or new ones added (in the backend)
then without refreshing the entire page the changes be reflected in the
corresponding DD..

I am aware that this cant exactly be achieved through CSJS..but I'm
still learning so just wanted to check if there was any alternative at
all.

Jan 11 '07 #6

Evertjan. wrote:
JavaSript has nothing to do with Java but the name.
>
What is a "control"?
What would be the use linking such thing to a database table?

Clientside javascript usually cannot reach a [serverside] database,
if we are talking web pages [do you?]

This NG is for Javascript, and if not specifically stated otherwise,
clientside javascript on/in an internet web page is ment.

--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)


Hi there,
Thanks for your reply.

By control I actually meant some Html form component..like a DropDown
List ..
I have on my web page a DD displaying the names of all the students
studying in an institute, but I need that at runtime say if any of
these students were to be deleted or new ones added (in the backend)
then without refreshing the entire page the changes be reflected in the

corresponding DD..
I am aware that this cant exactly be achieved through CSJS..but I'm
still learning so just wanted to check if there was any alternative at
all.

Jan 11 '07 #7
eureka said the following on 1/11/2007 12:13 PM:
Curtis.Dani...@gmail.com wrote:
>Google "javascript + live search". Pretty much what you'll be doing
is: as they type you will be making a request to a server for all
entries in a database, flat file... that are similar to what is in your
text area. You then want to empty and recreate the options in your
dropdown list. You can probably find code samples that use JSP and
JavaScript to do it.

Hi
Thanks for your reply..

You've suggested that as the user types in some letters in the textbox
request be made to the server for the matching database entries, well I
am not sure if this can be acheived through Client Side
JavaScript(CSJS)
Yes it can.
or with JSP either coz if I' m not wrong the JSP file
that you run from the browser is converted into a java servlet, then
the servlet is compiled to a .class file and then its run, but unlike
Javascript the code in Jsp in not executed everytime an event occurs on
the Html page, it'l only be executed first on the page-request and then
again on every refresh for that page.
Page makes a silent request to the .jsp file, the .jsp file executes on
the server and returns the new list to the browser. The browser then
updates the dropdown. Google uses it.
What I mean is every time the user types in something or the other in
the textbox I think atleast the Jsp/CSJS code wont be able to make a
request to the server for the records..well I'm not very sure about
this since I'm still learning ...if anyone has a further idea as to how
this can be achieved please suggest,
There are several ways, all of which involve requesting a new list from
the server. The difference in the approach would be how you wanted to
transmit that data and how you would handle it on the client.
What I had in mind was that maybe through JSP I could on page request
itself get a connection to the database and collect all the Names from
the Names-table and maybe store them in a hidden field on my page and
then on every onFocus() event of the textbox I could retrieve the text
keyed in the textbox into some variable and compare the first letter
of that text with the first letter of all the names present in my
hidden field one by one and then whatever names match I just populate
them into the DD ..but this achieves only half the purpose..besides on
every onFocus() event the JavaScript function will be called which will
do the matching, I think that'l probably cause overhead !
Calling the onfocus event won't be the overhead. Trying to retrieve
every word in the database that starts with a letter or two letter
combination would be the overhead. User types the letter A and you
retrieve every word starting with A, and so on.
I've also been suggested AJAX, but never worked with it before so I'd
be grateful if anyone provides any suggestions regarding the same.
AJAX is a buzz word that nearly encompasses any act of getting data from
the server without refreshing the page. That's all. The XMLHttpRequest
object (that AJAX was originally based on) is but one method of getting
data from the server.

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Jan 11 '07 #8
eureka wrote on 11 jan 2007 in comp.lang.javascript:
Evertjan. wrote:
>Javascript has nothing to do with Java but the name.

What is a "control"?
What would be the use linking such thing to a database table?

Clientside javascript usually cannot reach a [serverside] database,
if we are talking web pages [do you?]

This NG is for Javascript, and if not specifically stated otherwise,
clientside javascript on/in an internet web page is ment.
By control I actually meant some Html form component..like a DropDown
List ..

I have on my web page a DD displaying the names of all the students
studying in an institute, but I need that at runtime say if any of
these students were to be deleted or new ones added (in the backend)
then without refreshing the entire page the changes be reflected in the
corresponding DD..

I am aware that this cant exactly be achieved through CSJS..but I'm
still learning so just wanted to check if there was any alternative at
all.
Anything like that can be done with clientside javascript, when the
corresponding serverside will deliver the neccessary data.

See Randy's answer elsewhere.

However, you should concider if the gain of using an AJAX/xmlhttp like
construction is worth it against rerequesting a page,
If you download aal the students data anyway.

More interesting would be, if you could request via Ajax just the few
students that should be left out of the primary list.

Then a DOM guided search and delete of some drop down list <option>s
could be a quicky, and could even be done with some display of clientside
firework.

Using AJAX/xmlhttp tricks seems only wothwhile if the amount of data
requested is very small in comparison to the page download size,
and/or the dynamicity required is high. Or if the page has inmages that
you do not want to blink. [Other options, anyone?]

--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)
Jan 11 '07 #9
eureka wrote:
I have a web page in which there's a "StudentName" textbox and
below it is a "Names" Dropdown list. Initially the Textbox is empty
and the Dropdown doesnt have any items..

The requirement is that as soon as one goes on typing the letters in
the StudentName-textbox the corresponding matching names have to appear
in the DD located below.
Like say if I just key in 'J' then all the student-names from the
"Names - table(backend-MySql)" starting with 'J' have to appear
in the DD, say if I'm typing in "Jo" then just names such as
"John"," Joanna" etc need appear ..this is much like when we
send emails ...wherein automatically the matching entries for the
typed-in address show up from our address book in a dropdown list below
the "To" textbox..
<form>
<input type="text" name="StudentName"
style="text-transform:uppercase" onKeyUp="
while (s.options.length) s.options[0] = null
for (i=0; i<v.length; ++i)
if (new RegExp('^'+(this.value).toUpperCase()).exec(v[i]))
s.options[s.length] = new Option(v[i],v[i])">
<select size="1" name="Names" style="width:250px"></select>
</form>
<script type="text/javascript">
v = new Array('J\'K','JA','JA F','JAN','JAP','JAPI/','JO','JOS')
s = document.forms[0].Names
</script>

Entries may not contain ()\|^$?.{}!+* - it should be pretty easy to
filter them out.

Hope this helps,

--
Bart

Jan 11 '07 #10
Randy Webb wrote:
eureka said the following on 1/11/2007 12:13 PM:
Curtis.Dani...@gmail.com wrote:
Google "javascript + live search". Pretty much what you'll be doing
is: as they type you will be making a request to a server for all
entries in a database, flat file... that are similar to what is in your
text area. You then want to empty and recreate the options in your
dropdown list. You can probably find code samples that use JSP and
JavaScript to do it.
Hi
Thanks for your reply..

You've suggested that as the user types in some letters in the textbox
request be made to the server for the matching database entries, well I
am not sure if this can be acheived through Client Side
JavaScript(CSJS)

Yes it can.
or with JSP either coz if I' m not wrong the JSP file
that you run from the browser is converted into a java servlet, then
the servlet is compiled to a .class file and then its run, but unlike
Javascript the code in Jsp in not executed everytime an event occurs on
the Html page, it'l only be executed first on the page-request and then
again on every refresh for that page.

Page makes a silent request to the .jsp file, the .jsp file executes on
the server and returns the new list to the browser. The browser then
updates the dropdown. Google uses it.
What I mean is every time the user types in something or the other in
the textbox I think atleast the Jsp/CSJS code wont be able to make a
request to the server for the records..well I'm not very sure about
this since I'm still learning ...if anyone has a further idea as to how
this can be achieved please suggest,

There are several ways, all of which involve requesting a new list from
the server. The difference in the approach would be how you wanted to
transmit that data and how you would handle it on the client.
What I had in mind was that maybe through JSP I could on page request
itself get a connection to the database and collect all the Names from
the Names-table and maybe store them in a hidden field on my page and
then on every onFocus() event of the textbox I could retrieve the text
keyed in the textbox into some variable and compare the first letter
of that text with the first letter of all the names present in my
hidden field one by one and then whatever names match I just populate
them into the DD ..but this achieves only half the purpose..besides on
every onFocus() event the JavaScript function will be called which will
do the matching, I think that'l probably cause overhead !

Calling the onfocus event won't be the overhead. Trying to retrieve
every word in the database that starts with a letter or two letter
combination would be the overhead. User types the letter A and you
retrieve every word starting with A, and so on.
I've also been suggested AJAX, but never worked with it before so I'd
be grateful if anyone provides any suggestions regarding the same.

AJAX is a buzz word that nearly encompasses any act of getting data from
the server without refreshing the page. That's all. The XMLHttpRequest
object (that AJAX was originally based on) is but one method of getting
data from the server.

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/

Helo Mr.Webb
Thanks a lot for your indepth reply,

Regarding calling the JS function which does the pattern matching -
what I have done is I've already retrieved all the "Student" records in
a hidden field on page load itself and this function simply gets called
on every onFocus() event of the textbox and the value keyed by the user
in the textbox is compared to the names present in the hidden field
itself...no records are retrieved from the database again..atleast not
until the next page request or refresh!

But the drawback is if any addition/deletion/updation is done in the
backend at server side simultaneously then that isnt reflected until we
refresh the page and the hidden field is re-populated and the matching
is carried out again..hence I need a way that on the onFocus() event
itself the request directly be made to the database to get a fresh list
of names depending on the typed text, i.e, maybe a query or a function
be triggered/invoked automatically which gets the list for us, but
being a novice I'm not really sure if this is even remotely possible .

"Page makes a silent request to the .jsp file, the .jsp file executes
on
the server and returns the new list to the browser. The browser then
updates the dropdown. Google uses it."

Can you please guide me as to how I can actually make my JS pass on a
request to my JSP as soon as some event occurs ; is there a way of
addressing JSP code from within JS or is it possible to actually send a
value obtained in the JS code to my JSP scriptlet?

In that case I could just retrieve the value keyed into the textbox in
a variable and pass it on to my scriptlet which in turn would fire a
'select-where' query to get the matching records directly from the
table..I tried this but the JSP code does not recognize the JS
variable, is there possibly a way of achieving this or do I need a
different approach..

Once again, thanx a lot for your help!

Jan 11 '07 #11

Bart Van der Donck wrote:
eureka wrote:
I have a web page in which there's a "StudentName" textbox and
below it is a "Names" Dropdown list. Initially the Textbox is empty
and the Dropdown doesnt have any items..

The requirement is that as soon as one goes on typing the letters in
the StudentName-textbox the corresponding matching names have to appear
in the DD located below.
Like say if I just key in 'J' then all the student-names from the
"Names - table(backend-MySql)" starting with 'J' have to appear
in the DD, say if I'm typing in "Jo" then just names such as
"John"," Joanna" etc need appear ..this is much like when we
send emails ...wherein automatically the matching entries for the
typed-in address show up from our address book in a dropdown list below
the "To" textbox..

<form>
<input type="text" name="StudentName"
style="text-transform:uppercase" onKeyUp="
while (s.options.length) s.options[0] = null
for (i=0; i<v.length; ++i)
if (new RegExp('^'+(this.value).toUpperCase()).exec(v[i]))
s.options[s.length] = new Option(v[i],v[i])">
<select size="1" name="Names" style="width:250px"></select>
</form>
<script type="text/javascript">
v = new Array('J\'K','JA','JA F','JAN','JAP','JAPI/','JO','JOS')
s = document.forms[0].Names
</script>

Entries may not contain ()\|^$?.{}!+* - it should be pretty easy to
filter them out.

Hope this helps,

--
Bart
Yeah thanks,
but the filtering/validation etc has already been taken care of through
JS. The only main thing thats remaining is retrieving the actual
records at runtime on the onFocus() event of the textbox depending on
whatever the user types..

Well its a names-textbox so if the user does type in some number or any
special character then immediately he gets an 'invalid name' msg .

Jan 11 '07 #12

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: jzhang29 | last post by:
I have a JSP page and it contains a dropdown list called Office. What I try to do is: When I select different office from this list, the information of office (address, phone,etc) will be...
0
by: george d lake | last post by:
Hi, Is there a way to have a "Auto Complete" textbox or a "editable" dropdown? Here is my problem. I have a screen that need to have a list of 800+ employees. To be a dropdown, that could be a...
6
by: Smithers | last post by:
I am looking to implement a search feature into a Windows Forms MDI application. Specifically I plan to embed 3 textboxes into a toolbar; one for LastName, another for FirstName, and one for...
0
by: Kay O'Keeffe | last post by:
Hello, I have written my own custom control and I want one of its properties to display as a dropdown list when clicked, so the user can select from the list, it would be similar to the asp...
2
by: Abdhul Saleem | last post by:
Hi, Any code snippet or help link available on how to auto resize the dropdown list part of the combo(<select>) ? Or, is there any alternative techniques for displaying the full lenth text...
5
by: joshua.nicholes | last post by:
I have an access database that consists of two tables.A data collection table and a species list table. The data collection table has about 1500 records in it and the species list has about 600....
1
by: fran7 | last post by:
Hi, Anyone know how to populate a dropdown list with data from database. I have an interface that generates the following code for names in my database. ..asp <%If Trim(rsCard("Author"))<>""...
4
by: olidenia | last post by:
I need some help or tips on the following. I have a .sql database file with the folowing structure: DROP TABLE IF EXISTS `car`; CREATE TABLE IF NOT EXISTS `car` ( `id` int(10) default...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.