Üye Kayıt Üye Giriş

Ajax ile birbirine göre değişen seçim kutuları


Ajax ile birbirine göre değişen seçim kutuları

 
--------------------------------------------------------------------------------
ajaxscripting.js
--------------------------------------------------------------------------------

<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}

function doRequestUsingGETCountry(url) {

createXMLHttpRequest();
queryString = url ;
queryString = queryString + "&selcountry="+document.forms[0].country.options[document.forms[0].country.selectedIndex].value;
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET", queryString, true);
xmlHttp.send(null);
}

function handleStateChange() {
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
parseResults();
}
}
}
function parseResults() {
var responseText = document.createTextNode(xmlHttp.responseText);
var returnElements=xmlHttp.responseText.split("||");
//Process each of the elements
for ( var i=0; i<returnElements.length; i++ ){

if(returnElements[i]!="")
{
valueLabelPair = returnElements[i].split(";")
document.getElementById('state').options.length= returnElements.length;
document.getElementById('state').options[i] = new Option(valueLabelPair[0], valueLabelPair[1]);
}
}
}
function inc(filename)
{
var body = document.getElementsByTagName('body').item(0);
script = document.createElement('script');
script.src = filename;
script.type = 'text/javascript';
body.appendChild(script)
}

--------------------------------------------------------------------------------
dependantComboExample.jsp
--------------------------------------------------------------------------------
<%@page import="ajaxsample.SampleForm,java.util.*"%>
<%@include file="taglibs.jsp"%>
<%@include file="ajaxscripting.js"%>

<head>
</head>

<body onLoad="doRequestUsingGETCountry('/struts-ajax/DependantComboExample.do?');">

<html:form action="DependantComboExample.do" >

<h1></h1>
<table>
<tbody>
<tr>
<td>Country</td>
<td>
<html:select property="country" name="inputForm" onchange="doRequestUsingGETCountry('/struts-ajax/DependantComboExample.do?');">
<html:options collection="countries" property="value" labelProperty="label"/>
</html:select>
</td>
<td>
<html:select property="state" name="inputForm" >
<html:options collection="states" property="value" labelProperty="label" />
</html:select>
</td>
</tr>
</tbody>
</table>

</html:form>
</body>
</script>

------------------------------------------------------------------
GetAndPostExample
------------------------------------------------------------------


package ajaxsample;

import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import java.util.ArrayList;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.util.LabelValueBean;

public class GetAndPostExample extends Action {

ServletContext context = null;

public void setServlet(ActionServlet servlet)
{
context = servlet.getServletContext();
}
public ActionForward execute(ActionMapping mapping, ActionForm inForm,
HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setContentType("text/xml");

String optionSelected = request.getParameter("selcountry");
//Build the response text

SampleForm sform = (SampleForm)inForm;
ArrayList countries = (ArrayList)context.getAttribute("countries");
ArrayList states = (ArrayList)context.getAttribute("states");
ArrayList newStates = new ArrayList();
String responseText = "";
//sending response text in the format label:value||label;value
for(int i=0;i<states.size();i++)
{
LabelValueBean temp = (LabelValueBean)states.get(i);
if(temp.getValue().startsWith(optionSelected))
{
newStates.add(temp);
responseText = temp.getLabel()+";"+temp.getValue()+"||"+responseText;
}
}
if(responseText.endsWith("||")) //chop off the ending ||
{
responseText = responseText.substring(0, responseText.lastIndexOf("||"));
}
PrintWriter out = response.getWriter();
out.println(responseText);
//Close the writer
out.close();
return(mapping.findForward("content1"));
}
}
------------------------------------------------------------------
CacheServlet.java
------------------------------------------------------------------

package ajaxsample;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import java.io.IOException;
import org.apache.struts.util.LabelValueBean;
import java.util.*;
/**
*
* @author rupali_l
*/
public class CacheServlet extends HttpServlet {


/** Creates a new instance of CacheServlet */
public void init() throws ServletException {


System.out.println("In do get of CacheServlet");
ArrayList countries = new ArrayList();
countries.add(new LabelValueBean("India", "1" ));
countries.add(new LabelValueBean("U.S","2"));
countries.add(new LabelValueBean( "Australia","3"));

ArrayList states = new ArrayList();
states.add(new LabelValueBean("Maharashtra","11"));
states.add(new LabelValueBean( "Delhi","12"));
states.add(new LabelValueBean("Goa","13"));
states.add(new LabelValueBean( "Newjersey","21"));
states.add(new LabelValueBean("NewYork","22"));
states.add(new LabelValueBean( "California","23"));
states.add(new LabelValueBean("Sydney","31"));
getServletContext().setAttribute("countries", countries);
getServletContext().setAttribute("states", states);


}


public void doGet(HttpServletRequest request ,HttpServletResponse response) throws ServletException,
IOException
{
// request.getRequestDispatcher
}


}
------------------------------------------------------------------
web.xml
------------------------------------------------------------------


<web-app>
<display-name>Struts Blank Application</display-name>

<!-- Standard Action Servlet Configuration (with debugging) -->
<servlet>
<servlet-name>CacheServlet</servlet-name>
<servlet-class>ajaxsample.CacheServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>


<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>

<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>


<!-- The Usual Welcome File List -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>


<!-- Struts Tag Library Descriptors -->
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>

</web-app>

struts-config.xml


<!-- ================================================
<struts-config>
<!-- ================================================

<form-beans>

<!-- <form-bean name="sampleForm" type="ajaxsample.SampleForm"/>
-->

<!-- sample form bean descriptor for an ActionForm-->
<form-bean
name="inputForm"
type="ajaxsample.SampleForm"/>
</form-bean>

</form-beans>
<action-mappings>
<action path="/DependantComboExample" type="ajaxsample.GetAndPostExample"
name="inputForm" scope="request" validate="false" >

<!-- Partial Ajax Content-->
<forward name="content1" path="/dependantComboExample.jsp" />

</action-mappings>

</struts-config>

Bilgisayar Dershanesi Ders Sahibi;
Bilgisayar Dershanesi

Yorumlar

Yorum Yapabilmek İçin Üye Girişi Yapmanız Gerekmektedir.

ETİKETLER

x