I have 2 list box in Jsp Page.The first contain All tourname.
> Second list box has to populate values based on tournames selected from
> first listbox.(Say second list box has to contain departuredates). I want to code it using javascript to load the departure dates using script. created a function in a class to get the date.
public String[][] getDepartureDates(String tourNum,String tourCode,String tourName){
//sql=‘SELECT dept_date FROM ts_tour WHERE tour_num=’’+tourNum+’’ and trim(tour_code)=’’+tourCode+’’ and TRIM(tour_name) =’’+tourName.trim()+’’ and (tour_num,tour_code,dept_date) NOT IN (SELECT bpchar(str_tour_numb),bpchar(trim(str_tour_code)),dat_tour_date as dept_date FROM tsp_dpst_mgmt WHERE str_tour_numb=’’+tourNum+’’ AND TRIM(str_tour_code)=’’+tourCode+’’)’;
tourNum=tourNum==null?’’:tourNum.trim();
tourCode=tourCode==null?’’:tourCode.trim();
tourName=tourName==null?’’:tourName.trim();
System.out.println(‘tourNum’+tourNum);
System.out.println(‘tourCode’+tourCode);
System.out.println(‘tourName’+tourName);
String result[][]=null;
// String sql=‘SELECT dept_date FROM ts_tour WHERE tour_num=’’+tourNum+’’ and trim(tour_code)=’’+tourCode+’’ and (tour_num,tour_code,dept_date) NOT IN (SELECT bpchar(str_tour_numb),bpchar(trim(str_tour_code)),dat_tour_date as dept_date FROM tsp_dpst_mgmt WHERE str_tour_numb=’’+tourNum+’’ AND TRIM(str_tour_code)=’’+tourCode+’’)’;
String sql =‘SELECT a.dept_date FROM ts_tour as a LEFT OUTER JOIN inventory as c ON a.dept_date = c.tour_Date and a.tour_num=c.tour_num and c.type = ‘S’ and a.tour_code = c.tour_code, template_tour as b WHERE a.tour_num=’’+tourNum+’’ and trim(a.tour_code)=’’+tourCode+’’ and a.dept_date >= current_date-30 and a.tour_num=b.tour_num ORDER BY a.dept_date asc’;
System.out.println(’ sql:::::::::::::getDepartureDates() : ‘+sql);
try{
result=dbcon.getResult(sql);
}catch(Exception e){
}
return result;
}
while executing values are null…
my jsp page tsptourdesc.jsp
<%@ page language=‘java’ import=‘java.util.*’ %>
<%@ taglib uri=’/WEB-INF/struts.tld’ prefix=‘struts’ %>
<%@ taglib uri=’/WEB-INF/struts-form.tld’ prefix=‘form’ %>
<%@ taglib uri=’/WEB-INF/struts-bean.tld’ prefix=‘bean’ %>
<%@ taglib uri=’/WEB-INF/struts-logic.tld’ prefix=‘logic’ %>
<%@ taglib uri=’/WEB-INF/struts-html.tld’ prefix=‘html’ %>
<%
String scope=request.getParameter(‘scope’);
String accountId=(String)session.getValue(‘accountId’);
if(accountId ==null){
response.sendRedirect(request.getContextPath()+’/login.jsp’);
}
accountId =accountId ==null?’’:accountId.trim();
String clientName=(String)session.getValue(‘companydb’);
clientName=clientName==null?’’:clientName.trim();
String appPath=(String)session.getValue(‘applicationpath’);
appPath=appPath==null?’’:appPath.trim();
String buildMode=(String)session.getValue(‘buildmode’);
String buildStatus=(String)session.getValue(‘buildstatus’);
String tourMessage=(String)session.getValue(‘message’);
String acctComp = (String)session.getValue(‘usercompany’);
acctComp=acctComp==null?’’:acctComp.trim();
%>
<head>
<jsp:useBean id=‘dataPool’ class=‘com.centaur.tcp.TCPPool’ />
<jsp:setProperty name=‘dataPool’ property=‘database’ value=’<%=clientName%>’/>
<jsp:setProperty name=‘dataPool’ property=‘accountid’ value=’<%=accountId%>’/>
<jsp:setProperty name=‘dataPool’ property=‘usercomp’ value=’<%=acctComp%>’/>
<link rel=‘stylesheet’ href=’<%=appPath%>/style.css’ type=‘text/css’>
<script language=‘JavaScript’ src=’<%=appPath%>/scripts/Calendar.js’>
</script>
<script>
var tspScope=’<%=scope%>’;
function validate(){
var frm=document.forms[0];
if(frm.tourNum.value==’’ && frm.tourDate.value==’’ && frm.tourCode.value==’’){
alert(‘Please enter any criteria’);
frm.tourNum.focus();
}else {
document.forms[0].submit();
}
}
//function to check tour code value
var flag=0;
function tournumadjust(ths) {
flag=0;
chkChar(ths);
var zeros = 0;
var tno=’’;
if((ths.value.length<6)&&(ths.value.length>0)&& (flag==0)){
zeros=6-(ths.value.length);
for(var i=0;i<zeros;i++)
tno+=‘0’;
tno+=ths.value;
ths.value=tno;
flag=0;
}
}
function chkChar(ths) {
var content=ths.value;
for(i=0;i<content.length;i++) {
if((content.charAt(i)>=‘0’)&&(content.charAt(i)<=‘9’)&& (flag==0))
{flag=0;
continue;
}
else {
alert(‘Please enter only numeric values’);
ths.select();
flag=1;
break;
}
}
}
function goback(){
history.back();
}
function tourdepartureView(){
if(document.forms[0].tourNum.value==’’){
alert(’ Please Select a Tour ‘);
document.forms[0].tourNum.focus();
return false
}
tourNum=document.forms[0].tourNum.value;
tourCode=document.forms[0].tourCode.value;
document.location.href=’<%=appPath%>/tsp/tspTourSearchResultTemp.jsp?scope=build&tourNum=’+tourNum+’&tourCode=’+tourCode;
}
function deptDate(value)
{
alert(‘insidedept Date’);
alert(‘value’+value);
}
</script>
</head>
<body bgcolor=’#FFFFFF’ >
<form action=’<%=appPath%>/tspTourSearch.do’ method=‘GET’>
<table width=‘100%’ border=‘0’ cellspacing=‘1’ cellpadding=‘0’>
<tr><td class=message>
<%if(buildStatus!=null && buildMode!=null && buildMode.equals(‘add’)){%>
<center><font class=‘message’><%=buildStatus%></font></center>
<%
session.removeAttribute(‘buildstatus’);
session.removeAttribute(‘buildmode’);
}if(buildStatus!=null && buildMode!=null && buildMode.equals(‘modify’)){ %>
<center><font class=‘message’><%=buildStatus%></font></center>
<% session.removeAttribute(‘buildstatus’);
session.removeAttribute(‘buildmode’);
}if(tourMessage!=null){ %>
<center><font class=‘message’><%=tourMessage%></font></center>
<% session.removeAttribute(‘message’);
}
%>
</td>
</tr>
</table>
<%
String[][] sActTour = null;
String[][] sDateTour = null;
String tour = ‘’;
String tourNum = ‘’;
String tourCode = ‘’;
String tourNo = ‘’;
String tourCd = ‘’;
String tourName = ‘’;
String tournameSelect=’’;
try{
if(‘build’.equals(scope)){
sActTour=dataPool.getTCPTourList();
sDateTour=dataPool.getDepartureDates(tourNum,tourCode,tourName);
}else{
sActTour=dataPool.getAllTours();
sDateTour=dataPool.getDepartureDates(tourNum,tourCode,tourName);
}
}catch(Exception e){
out.print(‘Exception in display tour : ‘+e);
}
%>
<table width=‘100%’ border=‘0’ cellspacing=‘1’ cellpadding=‘0’>
<tr>
<td height=‘20’ align=‘left’ colspan=‘2’ class=‘smallhead1’>Save As Another Tour</td>
</tr>
<tr class=‘trow1’>
<td class=‘trow’ width=‘40%’>Select Tour Name</td>
<td width=‘60%’><select name=‘trName’ size=‘1’ Class=‘lists’ value=’<%=tournameSelect%> ’ onchange=‘javascript:deptDate(value);’>
<option value=’’><Select any Tour></option>
<%try{
if(‘build’.equals(scope)){
for(int i=0; i<sActTour.length;i++){
tourNo = sActTour[i][0];
tourNo=tourNo==null?’’:tourNo.trim();
}
}else{
for(int i=0;i<sActTour.length;i++) {
tourNo=(String)sActTour[i][0];
tourNo=tourNo==null?’’:tourNo.trim();
tourCd=(String)sActTour[i][1];
tourCd=tourCd==null?’’:tourCd.trim();
tourName=(String)sActTour[i][2];
tourName=tourName==null?’’:tourName.trim();
if(!’’.equals(tourName)){
tournameSelect=tourName;
}
if(!’’.equals(tourNo)){
tournameSelect=tournameSelect+’ | ‘+tourNo;
}
if(!’’.equals(tourCd)){
tournameSelect=tournameSelect+’ | ‘+tourCd;
}
out.println(’<option value=’’+tourNo+’-’+tourCd+’’>’+tournameSelect+’</option>’);
}
}
}catch(Exception ex){
out.print(‘exception in assign : ‘+ex);
}
%>
</select>
</td>
</tr>
<tr class=‘trow1’>
<td class=‘trow’ width=‘40%’>Select DepartureDate</td>
<td width=‘60%’><select name=‘Date’ size=‘1’ Class=‘lists’ >
<option value=’’><Select any Date></option>
<%try{
if(‘build’.equals(scope)){
for(int i=0; i<sActTour.length;i++){
tourNo = sActTour[i][0];
tourNo=tourNo==null?’’:tourNo.trim();
tourName = sActTour[i][1];
tourName=tourName==null?’’:tourName.trim();
tourCd = sActTour[i][2];
tourCd=tourCd==null?’’:tourCd.trim();
if(!’’.equals(tourName)){
tournameSelect=tourName;
}
if(!’’.equals(tourNo)){
tournameSelect=tournameSelect+’ | ‘+tourNo;
}
if(!’’.equals(tourCd)){
tournameSelect=tournameSelect+’ | ‘+tourCd;
}
//tournameSelect=tournameSelect.replace(’&’,’`’);
out.println(’<OPTION value=’+tourNo+’-’+tourCd+’>’+tournameSelect+’</option>’);
}
}else{
for(int i=0;i<sActTour.length;i++) {
tourNo=(String)sActTour[i][0];
tourNo=tourNo==null?’’:tourNo.trim();
tourCd=(String)sActTour[i][1];
tourCd=tourCd==null?’’:tourCd.trim();
tourName=(String)sActTour[i][2];
tourName=tourName==null?’’:tourName.trim();
if(!’’.equals(tourName)){
tournameSelect=tourName;
}
if(!’’.equals(tourNo)){
tournameSelect=tournameSelect+’ | ‘+tourNo;
}
if(!’’.equals(tourCd)){
tournameSelect=tournameSelect+’ | ‘+tourCd;
}
out.println(’<option value=’’+tourNo+’-’+tourCd+’’>’+tournameSelect+’</option>’);
}
}
}catch(Exception ex){
out.print(‘exception in assign : ‘+ex);
}
%>
</select>
</td>
</tr>
<tr>
<td colspan=‘2’ align=‘right’ class=‘theading’>
<input type=button class=lists value= ‘Search’ onClick=‘javascript:validate()’>
<input type=button class=lists value= ’ Back ’ onClick=‘javascript:location.href=’<%=appPath%>/tsp/tspMenu.jsp’;’>
</td>
</tr>
</table>
<input type=‘hidden’ name=‘tourName’ value=’<%=tournameSelect%>’>
<input type=‘hidden’ name=‘scope’ value=’<%=scope%>’>
<input type=‘hidden’ name=‘database’ value=’<%=clientName%>’ >
<input type=‘hidden’ name=‘userid’ value=’<%=accountId%>’ >
<input type=‘hidden’ name=‘tourNum’ value=’<%=tourNo%>’ >
<input type=‘hidden’ name=‘tourCode’ value=’<%=tourCd%>’ >
</form>
</body>
please suggest an idea
In case of using dhtmlxcombo - you can attach onChange event to first combo and just call loadXML with necessary params for second combo ( or fill it from available js data )