일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- MFC
- oracle
- dock
- Eclipse
- jsr 296
- tomcat
- Google Map
- appspresso
- ibsheet
- GPS
- iBATIS
- swingx
- Ajax
- jQuery
- 선택적조인
- WebLogic
- sencha touch
- JSON
- JDOM
- Spring
- PHP
- PLSQL
- rowspan
- MySQL
- 전자정부프레임워크
- Struts
- Android
- 가우스
- node.js
- phonegap
Archives
- Today
- Total
Where The Streets Have No Name
IBSheet를 이용하여 select 테그 내용을 가져다 채우기 본문
출처 : http://blog.naver.com/pkoksh/150020605065
//**********************************************************************************************
// 공통 Javascript 소스
//**********************************************************************************************
//---------------------------------------------------------------------------------------------
// combodata로 select box 에 append 시킨다.
//---------------------------------------------------------------------------------------------
function makeSelect(selectObj, text){
var temp;
if(text.indexOf("|!|")>0){
temp = text.split("|!|");
text = temp[0]+temp[2];
}
selectObj.options.length = 0;
var arr = text.split("#");
for ( var n = 0; n < arr.length; n++ )
{
if ( arr[n] )
{
var cdnm = arr[n].split("@@");
selectObj.options[selectObj.options.length] = new Option(trim(cdnm[1]), trim(cdnm[0]));
}
}
if(temp!=null){
selectObj.value = temp[1];
}
}
/*---------------------------------------------------------------------------------------------
IBSheet 를 통해 받아온 xml 스트링과 그 안에 ETC-DATA로 넣은 KEY 값을 넣으면 안에 데이터를 리턴
parameter 1 : IBSheet를 통해 받아온 xml string
parameter 2 : 스트링 중에 추출하고자 하는 KEY 값
---------------------------------------------------------------------------------------------*/
function getEtcData(xmlStr,etcname){
if(xmlStr == null || xmlStr == "") return;
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM" );
xmlDoc.loadXML(xmlStr);
var xmlRoot = xmlDoc.documentElement;
if(xmlRoot == null) return;
var etcDataNode = xmlRoot.getElementsByTagName("ETC-DATA").item(0);
if(etcDataNode == null) return;
var etcNodes = etcDataNode.childNodes;
if(etcDataNode == null) return;
var clength = etcNodes.length;
for(i=0;i<clength;i++){
if(etcNodes[i].getAttribute("KEY")==etcname){
return etcNodes[i].text;
}
}
}
//**********************************************************************************************
// 화면의 jsp 쪽 소스
//**********************************************************************************************
//javascript 부분
//---------------------------------------------------------------------------------------------
//몰래 데이터를 가져오는 부분
//---------------------------------------------------------------------------------------------
function getEduMidData(str){
//시트를 통해 조회시 조회 이미지를 나타나지 않게 한다.
msheet.WaitImageVisible = false;
var frm = document.form1;
//필요한 값 설정
frm.S_METHOD.value = "edu_mid_cd_search";
//아이비시트를 통해 조회
var temp = msheet.GetSaveXml("/weblogic/sheetAction.sheet",FormQueryString(frm));
//받은 데이터 중에 eud_mid_cd 라는 KEY값을 갖고 있는 데이터를 추출한다.
temp = getEtcData(temp,"eud_mid_cd");
//시트를 통해 조회시 이미지를 나타나게 한다.
msheet.WaitImageVisible = true;
//받은 데이터를 s_edu_mid_cd select 테그에 설정한다.
makeSelect(frm.s_edu_mid_cd,temp)
return temp;
}
//**********************************************************************************************
// 서버쪽 java 소스
//**********************************************************************************************
//---------------------------------------------------------------------------------------------
//중분류 데이터를 얻어오는 메서드
//---------------------------------------------------------------------------------------------
public void edu_mid_cd_search(SingleForm form) throws Exception
{
try {
CommonCode jCode = new CommonCode();
// 교육분야 중분류
ArrayList arr2 = new ArrayList();
HashMap map2 = new HashMap();
int arrSize2 = 0;
System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
String target_sel = StringUtil.avoidNull(form.getValue("target_sel"));
String s_edu_lrg_cd = StringUtil.avoidNull(form.getValue("s_edu_lrg_cd")); // 대분류
String s_edu_mid_cd = StringUtil.avoidNull(form.getValue("s_edu_mid_cd")); // 중분류
String y_edu_mid_cd = StringUtil.avoidNull(form.getValue("y_edu_mid_cd"));
if(target_sel.equals("edu_mid_cd")){
arr2 = getEduMid(s_edu_lrg_cd); //Html select테그 중분류
}else{
arr2 = getEduMid(target_sel); //IBSheet 중분류
}
arrSize2 = arr2.size();
StringBuffer sb = new StringBuffer();
//==============여기가 중요 ================================
//select 테그에 들어갈 데이터를
// CODE1@@TEXT1#CODE2@@TEXT2#CODE3@@TEXT3#... 형태로 가져옴
//==============여기가 중요 ================================
for(int i=0; i<arrSize2; i++) {
map2 = (HashMap)arr2.get(i);
if(((String)map2.get("EDU_MID_CD")).equals(y_edu_mid_cd)) { sb.append("|!|"+map2.get("EDU_MID_CD")+"|!|"); }
sb.append(map2.get("EDU_MID_CD")+"@@"+map2.get("EDU_MID_CDNM")+"#");
}
//만든 데이터를 etc 데이터 형태로 만든다.
addEtcData("eud_mid_cd",sb.toString());
}
catch (Exception e) {
throw e;
}
}