Hi all,
I trying to solve out this problem ... i am trying a double combo box but i cant make a head where i have gone wrong. WHen i run it, i get a Ready State=4 but along side i get Http 404 error. Also my action class is not called.(I had some SOPs there).
Please Please help me...
-----------
index.jsp
-----------
<html:html>
<title>Double Combo - Ajax In Action</title>
<script type="text/javascript" src="net.js"></script>
<script type="text/javascript">
alert('I am in double combo ajax in action');
function FillTerritory(oElem,oTarget){
alert('I am in fill territory function');
alert('oElem :'+oElem.value);
alert('oTarget :'+oTarget.value);
var strValue = oElem.options[oElem.selectedIndex].value;
alert('strValue :'+strValue);
var url = '/SecondOptionsAction.do';
var strParams = 'q=' + strValue +"&f=" + oTarget.form.name +"&e=" + oTarget.name;
alert('q'+ strValue);
alert('f'+ oTarget.form.name);
alert('e'+ oTarget.name);
var loader1 = new
net.ContentLoader(url,FillDropDown,null,"POST",strParams);
}
function FillDropDown(){
var xmlDoc = this.req.responseXML.documentElement;
alert('Im in FillDropDown');
var xSel = xmlDoc.getElementsByTagName('selectElement')[0];
alert('before strfname 0');
var strFName = xSel.childNodes[0].firstChild.nodeValue;
alert('before strfname 1');
var strEName = xSel.childNodes[1].firstChild.nodeValue;
var objDDL = document.forms[strFName].elements[strEName];
objDDL.options.length = 0;
var xRows = xmlDoc.getElementsByTagName('entry');
alert('I am in Fill Drop Down function');
for(i=0;i<xRows.length;i++){
var theText = xRows[i].childNodes[0].firstChild.nodeValue;
var theValue = xRows[i].childNodes[1].firstChild.nodeValue;
var option = new Option(theText,theValue);
objDDL.options.add(option,objDDL.options.length);
}
}
</script>
</head>
<body>
<html:form action="/SecondOptionsAction" styleId="inputForm">
<html:select property="ddlRegion" onchange="javascript:FillTerritory(this,document.forms[0].ddlTerritory)" styleId="Select1">
<html
ption value="-1">Pick A Region</html
ption>
<html
ption value="Eastern">Eastern</html
ption>
<html
ption value="Western">Western</html
ption>
<html
ption value="Northern">Northern</html
ption>
<html
ption value="Southern">Southern</html
ption>
</html:select>
<html:select property="ddlTerritory" styleId="Select2"></html:select>
</html:form>
</body>
</html:html>
---------------------------
--------------------------
Action Class
--------------------
package com.cris;
import org.apache.log4j.*;
import com.cris.ResultBean;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import java.io.*;
import java.util.*;
import java.sql.*;
import java.sql.Connection;
import javax.servlet.http.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SecondOptionsAction extends Action
{
public ArrayList fillDataTable(
String sqlQuery )
{
ArrayList results= new ArrayList();
ResultSet rs=null;
Connection con=null;
try
{
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>");
System.out.println("----fillDataTable Method----");
System.out.println(">>>>>>>>>>>>>>>>>>>>>>");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc
dbc:ankitDB1","scott","tiger");
Statement st=con.createStatement();
rs= st.executeQuery(sqlQuery);
while (rs.next())
{
//ArrayList results= new ArrayList();
System.out.println(">>>>>>>>>>>>>>>>>>");
System.out.println("-Inside rs.next()");
System.out.println(">>>>>>>>>>>>>>");
ResultBean resultBean = new ResultBean();
resultBean.setTerritoryDescription( rs.getString("TerritoryDescription") );
resultBean.setRegionid(rs.getString("regionid"));
resultBean.setTerritoryID(rs.getString("TerritoryID"));
results.add(resultBean);
System.out.println(">>>>>>>>>>>>>>>>");
System.out.println("---results added ---");
System.out.println(">>>>>>>>>>>>>>>>>>>>");
}
}
catch(Exception e)
{
System.out.println("Exception "+e);
}
finally
{
if (rs != null)
{
/*
Statement stmt = rs.getStatement();
if (stmt != null)
{
stmt.close();
}
*/
//rs.close();
//con.close();
}
}
return results;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/xml");
String strQuery="";
// 'q' is the selected Region='Eastern'
strQuery = request.getParameter("q");
String strForm="";
// 'f' is the name of the form
strForm = request.getParameter("f");
String strElem="";
// 'e' is the second select (teritory)in the jsp= 'assam'
strElem = request.getParameter("e");
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
System.out.println("-----------Action Class-----------------");
System.out.println("the Region, is set as ["+strQuery+"]");
System.out.println("the form, is set as ["+strForm+"]");
System.out.println("the territory is set as ["+strElem+"]");
System.out.println(">>>>>>>>>>>>>>>>>>>>");
String strSql = "SELECT TerritoryDescription,TerritoryID FROM Territories"
+ " WHERE regionid ='" + strQuery +"' ORDER BY TerritoryDescription";
ArrayList dtOptions=new ArrayList();
System.out.println("!!!");
System.out.println("------After the Query-------");
System.out.println("the Query is ["+strSql+"]");
System.out.println("!!!>");
dtOptions=fillDataTable(strSql);
while(!(dtOptions.isEmpty()))
{
for(Iterator iterator=dtOptions.iterator();iterator.hasNext()
{
ResultBean rb = new ResultBean();
rb = (ResultBean) iterator.next();
String terr_description = rb.getTerritoryDescription();
System.out.println(">>>>>>>>>>>>>>>>>>>>");
System.out.println("---Im in Iterator---");
System.out.println("the terr_description is ["+terr_description+"]");
String terr_id=rb.getTerritoryID();
System.out.println("the terr_id is ["+terr_id+"]");
System.out.println(">>>>>>>>>>>>>>>>>>>");
StringBuffer strXML= new StringBuffer("<?xml version=1.0 ?>");
System.out.println("--------------");
System.out.println("-----XML Creation---");
System.out.println("--------------------");
strXML.append("<selectChoice>");
strXML.append("<selectElement>");
strXML.append("<formName>"+strForm+"</formName>");
strXML.append("<formElem>"+strElem+"</formElem>");
strXML.append("</selectElement>");
System.out.println(">>>>>>>>>>>>>>");
System.out.println("--<selectChoice>------");
System.out.println(">>>>>>>>>>>>>>>>>>");
strXML.append("<entry>");
strXML.append("<optionText>Select A Territory</optionText>");
strXML.append("<optionValue>-1</optionValue>");
strXML.append("</entry>");
System.out.println("--------------");
System.out.println("----creating entry--");
System.out.println("----------------");
strXML.append("<entry>");
strXML.append("<optionText>"+terr_description
+"</optionText>");
strXML.append("<optionValue>"+terr_id
+"</optionValue>");
strXML.append("</entry>");
strXML.append("</selectChoice>");
System.out.println("------------------");
System.out.println("----XML End-----");
System.out.println("----------------");
}
}
return mapping.findForward("index");
}
}
--------------------------------------
cant post the Net.js ....sys doent allow me...
--------------------------------------
Please help me....
Regards,
Roshani
[ September 11, 2006: Message edited by: RoshaniG Gopal ]