Hey everyone,

I've got a recordset of terms in my page. I know the recordset has all the terms from the sql table within it because i can get it to print just fine to screen.

I need to put the recordset into an array. That way, a script that finds as you type will work in the textbox. I cannot figure out how to get the recordset into the array properly. the script works fine with the included arrays, so I know there isn't a problem with anything, but my ability to get these terms into the array correctly :o )

<%@ page language="java" import="java.sql.*,java.lang.String" %>
<%@ include file="Connections/webcat.jsp" %>
<%
Driver Driverkeywords = (Driver)Class.forName(MM_webcat_DRIVER).newInstance();
Connection Connkeywords = DriverManager.getConnection(MM_webcat_STRING,MM_webcat_USERNAME,MM_webcat_PASSWORD);
PreparedStatement Statementkeywords = Connkeywords.prepareStatement("SELECT term FROM dbo.WDINterm ORDER BY term ASC");
ResultSet keywords = Statementkeywords.executeQuery();
boolean keywords_isEmpty = !keywords.next();
boolean keywords_hasData = !keywords_isEmpty;
Object keywords_data;
int keywords_numRows = 0;
%>
<html>
<head>
<script language="javascript" type="text/javascript" src="actb.js"></script>
<script language="javascript" type="text/javascript" src="common.js"></script>
<script>
var customarray=new Array('an apple','alligator','elephant','pear','kingbird','kingbolt', 'kingcraft','kingcup','kingdom','kingfisher','kingpin');
var custom2 = new Array('something','randomly','different');

// this is where i want to put the array of my terms, the two arrays 
// above are demo arrays, but hard coded, not loaded from a database query like i would like to achieve

</script>
</head>

<body>

//this is some garbage i put in the page to make sure the values were indeed loading the recordset, indeed they are
<%
while (keywords.next()) {
    out.println("'");
    out.println(keywords.getString("term"));
    out.println("'");
    out.println(",");

    }
keywords.close();
%><BR>
//this is the text box that as a user types in something, based up an array, it will auto-complete similar to Google Suggest's functionality
<input type='text' style='font-family:verdana;width:300px;font-size:12px' id='tb' value=''/> 
<script>
var obj = actb(document.getElementById('tb'),customarray);
//setTimeout(function(){obj.actb_keywords = custom2;},10000);
</script>
</body>
</html>

So again, how can i take those items from the recordset and fill an array? Especially one in the format like:

var custom3 = new Array('term1fromquery','term2fromquery','term3fromquery');

Thanks for any help you can give me!

Edited 3 Years Ago by pyTony: fixed formatting

Why not:

//this is some garbage i put in the page to make sure the values were indeed loading the recordset, indeed they are

var custom3 = new Array(<%
while (keywords.next()) {
out.println("'");
out.println(keywords.getString("term"));
out.println("'");
out.println(",");
}
keywords.close();
%>);

or similar...

i have tried that, but it doesn't work. does anyone else know how i might get a recordset from a sql query into an array in JSP or javascript?

thanks
megan

I assume your only question is how to build your javascript line that defines the array, but instead of hard-coding the array items, you want them populated from a SQL query?

If this is the case, then this is a server-side question. And that depends on the language you are using. And this would be the wrong forum.

My suggestion is to iterate your databse recordset building a string where each time you append a comma, a single tick, the value, and another single tick. At the end of the loop, simply strip off the beginning comma. (Look at the substr command or similar in your language of choice.)

Then all you do is write your string into the javascript line as you are outputting the page.

Troy is absolutely correct. From your code posting, I can see that your server-side language is JSP. JavaScript is client-side. There is nothing you can do CLIENT-SIDE to build an array from data that exists on the SERVER.

Therefore I'm moving this thread to the JSP forum. I wish you well.

This article has been dead for over six months. Start a new discussion instead.