๐Ÿ’ป IT/์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

$("#ํ…Œ์ด๋ธ” ์•„์ด๋””").on("click","tr", function(){
    alert($(this).children().eq(์œ„์น˜[0๋ถ€ํ„ฐ์‹œ์ž‘]).text());
});
function fn_checkRow(){
   var rowData = new Array();
   var tdArr = new Array();
   var checkBox = $('input:checkbox[name="์ฒดํฌ๋ฐ•์Šค์ด๋ฆ„"]:checked');
   if(checkBox.length == 0){
      alert("ํ•ญ๋ชฉ์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”.")
   }else if(checkBox.length > 1){
      alert("ํ•ญ๋ชฉ์€ ํ•˜๋‚˜๋งŒ ์„ ํƒํ—ค์ฃผ์„ธ์š”.")
   }else{
      checkBox.each(function(i){
         var tr = checkBox.parent().parent().eq(i);
         var td = tr.children();
         
         rowData.push(tr.text());
         var num = td.eq(1).text();
         var year = td.eq(2).text();
         var infoId = td.eq(3).text();
         
         
         tdArr.push(num);
         tdArr.push(year);
         tdArr.push(infoId);
         
         console.log("rowData : "+rowData);
         
         param = {
            num : num,
            year : year,
            infoId : infoId
         }
         
         $.ajax({
         	....์‚ฌ์šฉํ•ด์„œ ๋ณด๋‚ด๋ฉด ๋จ
         
        });
   }
}



// 1,000 ๋‹จ์œ„ ๋„ฃ์–ด์ฃผ๋Š” ํ•จ์ˆ˜
function fn_AmtFormatter(v){
     var formattedAmt = Number(v).toLocaleString();
     return formattedAmt
};


//jquery ์‚ฌ์šฉ์‹œ : 
   .text(fn_rsltnAmtFormatter1(testValue))

 

์ž…๋ ฅ๊ฐ’ ํ•œ๊ธ€, ์ˆซ์ž๋งŒ ๋ฐ›๊ธฐ

let regexKo = /^[ใ„ฑ-ใ…Ž|๊ฐ€-ํžฃ]+$/;   //ํ•œ๊ตญ์–ด๋งŒ ์ž…๋ ฅ๊ฐ€๋Šฅ
let regexNum = /^[0-9]+$/;        //์ˆซ์ž๋งŒ ์ž…๋ ฅ๊ฐ€๋Šฅ
let regexEng = /^[a-z|A-Z]+$/;	  //์˜์–ด๋งŒ ์ž…๋ ฅ๊ฐ€๋Šฅ
let regexAll = /^[a-z|A-Z|0-9|ใ„ฑ-ใ…Ž|๊ฐ€-ํžฃ]+$/; //์˜์–ด+์ˆซ์ž+ํ•œ๊ธ€๋งŒ ์ž…๋ ฅ๊ฐ€๋Šฅ

//jquery ์‚ฌ์šฉ์‹œ : 
      else if(regexKo.test(๋ณ€์ˆ˜๋ช…)== false){
      alert("ํ•œ๊ธ€๋งŒ ์ž…๋ ฅํ•ด์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.")
      };



 

๋ฌธ์ œ : jsp๋กœ ๋ฐ›์€ ์˜ˆ์•ฝ ์ •๋ณด์—์„œ ์˜ˆ์•ฝ ์ทจ์†Œ๋ฅผ ๋ˆ„๋ฅด๋ฉด ์˜ˆ์•ฝ์ด ์ทจ์†Œ ๋˜๊ฒŒ ํ•จ

์ฒซ๋ฒˆ์งธ ์˜ˆ์•ฝ์€ ์ •์ƒ ์ž‘๋™ ํ•˜๋Š”๋ฐ ๋‘๋ฒˆ์งธ ์˜ˆ์•ฝ๋ถ€ํ„ฐ ๋ฒ„ํŠผ์ด ์•ˆ๋จนํžŒ๋‹ค. 

 

jsp์ฝ”๋“œ

<div class="mt-5 mb-5 ps-3 row row-cols-1">
          <c:forEach items="${showList}" var="show" varStatus="status">
          <div class="card col me-5 pzero" style="width: 400px;">
            <img src=/static/img/${show.thumbnail} class="card-img-top" alt="..."  width="398" height="230">
            <div class="card-body">
              <h5 class="card-title">${show.hotel_title}</h5>
              <p class="card-text text-truncate">${show.hotel_explain}</p>
              <div class="pt-2">
                <p  class="fs-6" style="color: lightgray;">${show.check_in} ~ ${show.check_out}</p>
              </div>
            </div>
            <hr style="margin-bottom: 0px;">
            <div class="card-body ">
            <span hidden="hidden" id="showhotelnum">${show.reserve_num}</span>
              <button class="btnall rounded container-fluid p-3" id="reserve_cancel">์˜ˆ์•ฝ ์ทจ์†Œ</button>
            </div>
          </div>

 

 

js ์ฝ”๋“œ

  $("#reserve_cancel").each(function(index, item){
	  item.addEventListener('click', function (event){
		  console.log("index: "+index);
		  if(confirm("์˜ˆ์•ฝ ์ทจ์†Œ์‹œ ๋ชจ๋“  ์ •๋ณด๋Š” ๋‚ ๋ผ๊ฐ‘๋‹ˆ๋‹ค.")){
			  alert("์˜ˆ์•ฝ์ด ์ทจ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
			  const reserve_number2= $(this).parent().find('#showhotelnum').html();
			  const email11=localStorage.getItem("my_email");
			  console.log("์˜ˆ์•ฝ ๋ฒˆํ˜ธ๋Š”?:"+reserve_number2);
			  location.href="deleteReserve.do?reserve_num="+reserve_number2+"&email="+email11;
		  }
	  });
	});

 

 

 

ํ•ด๊ฒฐ :  ์˜ˆ์•ฝ ์ทจ์†Œ ํƒœ๊ทธ์˜ ์•„์ด๋””๋ฅผ ํด๋ž˜์Šค๋กœ ๋ฐ”๊พธ๊ณ  ์‹คํ–‰ ํ–ˆ๋Š”๋ฐ ๋œ๋‹ค. 

#reserve_cancel ---> .reserve_cancel

 

 

ํ”„๋กœ์ ํŠธ ๋„์ค‘ ์ฒดํฌ์ธ,์ฒดํฌ์•„์›ƒ ๋‚ ์งœ ๊ฐ’์„ ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€์— ๋„ฃ์–ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์™”๋‹ค. 

ํ•œ๊ฐ€์ง€ ๋‚ด๊ฐ€ ์ˆ˜์ •ํ•ด์ค˜์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋Š”๋ฐ

 

 

์ง€๊ธˆ datepicker์˜ ์ฒดํฌ์ธ, ์ฒดํฌ์•„์›ƒ ๊ฐ’์ด 

์ด๋Ÿฐ ์‹์œผ๋กœ ์ถœ๋ ฅ ๋œ๋‹ค

๋‚˜๋Š” ์ด๊ฑธ 00์›” 00์ผ๋กœ ๋ฐ”๊ฟ”์„œ ์ €์žฅํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

 

์ด์œ ๋Š” db๋ž‘ ๊ฒฐ์ œ jsp์— 

์ด๋Ÿฐ ์‹์œผ๋กœ ๋‚˜์˜ค๊ธธ ์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

 

์ฐธ๊ณ ๋กœ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ datepicker ์ฝ”๋“œ๋Š”

$(function() {
    //input์„ datepicker๋กœ ์„ ์–ธ
    $("#datepicker1,#datepicker2").datepicker({
        dateFormat: 'yy-mm-dd' //๋‹ฌ๋ ฅ ๋‚ ์งœ ํ˜•ํƒœ
        ,showOtherMonths: true //๋นˆ ๊ณต๊ฐ„์— ํ˜„์žฌ์›”์˜ ์•ž๋’ค์›”์˜ ๋‚ ์งœ๋ฅผ ํ‘œ์‹œ
        ,showMonthAfterYear:true // ์›”- ๋…„ ์ˆœ์„œ๊ฐ€์•„๋‹Œ ๋…„๋„ - ์›” ์ˆœ์„œ
        ,changeYear: true //option๊ฐ’ ๋…„ ์„ ํƒ ๊ฐ€๋Šฅ
        ,changeMonth: true //option๊ฐ’  ์›” ์„ ํƒ ๊ฐ€๋Šฅ                
        ,showOn: "both" //button:๋ฒ„ํŠผ์„ ํ‘œ์‹œํ•˜๊ณ ,๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์•ผ๋งŒ ๋‹ฌ๋ ฅ ํ‘œ์‹œ ^ both:๋ฒ„ํŠผ์„ ํ‘œ์‹œํ•˜๊ณ ,๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ input์„ ํด๋ฆญํ•˜๋ฉด ๋‹ฌ๋ ฅ ํ‘œ์‹œ  
        ,buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif" //๋ฒ„ํŠผ ์ด๋ฏธ์ง€ ๊ฒฝ๋กœ
        ,buttonImageOnly: true //๋ฒ„ํŠผ ์ด๋ฏธ์ง€๋งŒ ๊น”๋”ํ•˜๊ฒŒ ๋ณด์ด๊ฒŒํ•จ
        ,buttonText: "์„ ํƒ" //๋ฒ„ํŠผ ํ˜ธ๋ฒ„ ํ…์ŠคํŠธ              
        ,yearSuffix: "๋…„" //๋‹ฌ๋ ฅ์˜ ๋…„๋„ ๋ถ€๋ถ„ ๋’ค ํ…์ŠคํŠธ
        ,monthNamesShort: ['1์›”','2์›”','3์›”','4์›”','5์›”','6์›”','7์›”','8์›”','9์›”','10์›”','11์›”','12์›”'] //๋‹ฌ๋ ฅ์˜ ์›” ๋ถ€๋ถ„ ํ…์ŠคํŠธ
        ,monthNames: ['1์›”','2์›”','3์›”','4์›”','5์›”','6์›”','7์›”','8์›”','9์›”','10์›”','11์›”','12์›”'] //๋‹ฌ๋ ฅ์˜ ์›” ๋ถ€๋ถ„ Tooltip
        ,dayNamesMin: ['์ผ','์›”','ํ™”','์ˆ˜','๋ชฉ','๊ธˆ','ํ† '] //๋‹ฌ๋ ฅ์˜ ์š”์ผ ํ…์ŠคํŠธ
        ,dayNames: ['์ผ์š”์ผ','์›”์š”์ผ','ํ™”์š”์ผ','์ˆ˜์š”์ผ','๋ชฉ์š”์ผ','๊ธˆ์š”์ผ','ํ† ์š”์ผ'] //๋‹ฌ๋ ฅ์˜ ์š”์ผ Tooltip
        ,minDate: "-5Y" //์ตœ์†Œ ์„ ํƒ์ผ์ž(-1D:ํ•˜๋ฃจ์ „, -1M:ํ•œ๋‹ฌ์ „, -1Y:์ผ๋…„์ „)
        ,maxDate: "+5y" //์ตœ๋Œ€ ์„ ํƒ์ผ์ž(+1D:ํ•˜๋ฃจํ›„, -1M:ํ•œ๋‹ฌํ›„, -1Y:์ผ๋…„ํ›„)  
    });                    
    
    //์ดˆ๊ธฐ๊ฐ’์„ ์˜ค๋Š˜ ๋‚ ์งœ๋กœ ์„ค์ •ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    $('#datepicker1').datepicker('setDate', 'today'); //(-1D:ํ•˜๋ฃจ์ „, -1M:ํ•œ๋‹ฌ์ „, -1Y:์ผ๋…„์ „), (+1D:ํ•˜๋ฃจํ›„, -1M:ํ•œ๋‹ฌํ›„, -1Y:์ผ๋…„ํ›„) 
           
});

 

 


 

๊ตฌ๊ธ€๋ง์„  ํ•ด๋ณธ ๊ฒฐ๊ณผ

 

 

์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•

let startDate = $("#datepicker1").datepicker({format:'MM์›” dd์ผ'});

 

๊ฐ€์žฅ ์ฝ”๋“œ๋„ ๊ฐ„๊ฒฐํ•˜๊ณ  ๋นจ๋ผ์„œ ์ด๊ฑธ๋กœ ํ•˜๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ..

 

 

์ž๊พธ ์ด์ƒํ•œ ๊ฐ’์ด ์ถœ๋ ฅ ๋๋‹ค.

๊ฐ’์ด [object Object]๋กœ ์ถœ๋ ฅ์ด ๋๋‹ค.

JSON์œผ๋กœ ์ถœ๋ ฅ์ด ๋˜๋Š”๊ฑฐ๋‹ค.

์™œ ๊ทธ๋Ÿฐ์ง€ ๋ชจ๋ฅด๊ฒ ์–ด์„œ ๋ช‡ ์‹œ๊ฐ„ ์ฐพ์•„๋ณด๋‹ค ์‹œ๊ฐ„์ด ์—†์–ด ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ–ˆ๋‹ค.

 

 

 

๋‘๋ฒˆ์งธ ๋ฐฉ๋ฒ•

//์ถœ๋ ฅ๊ฐ’์ด ๊ธฐ์กด(Tue Mar 26....)์œผ๋กœ ๋‚˜์˜ค๋˜ ๋ณ€์ˆ˜
startDate = new Date(document.getElementById("datepicker1").value);
endDate = new Date(document.getElementById("datepicker2").value);

//์ฒดํฌ์ธ ๋‚ ์งœ
startMonth = ('0'+(startDate.getMonth()+1)).slice(-2);
startday = ('0'+startDate.getDate()).slice(-2);
startDate1 = startMonth+'์›” ' +startday+'์ผ';
	
//์ฒดํฌ์•„์›ƒ ๋‚ ์งœ
endMonth = ('0'+(endDate.getMonth()+1)).slice(-2);
endday = ('0'+endDate.getDate()).slice(-2);
endDate1 = endMonth+'์›” ' +endday+'์ผ';

(๋ณ€์ˆ˜์— let์„ ์•ˆ์“ด ์ด์œ ๋Š” ์ „์—ญ์œผ๋กœ ์ด๋ฏธ ์„ ์–ธํ–ˆ๋‹ค. ์ด๊ฑด ๊ทธ ๋ฐ‘์— ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜จ ๊ฒƒ)

 

๋ฐ”๋กœ ํ•˜๋‚˜ํ•˜๋‚˜ ์›”, ์ผ ๊ฐ’์„ ๊ตฌํ•ด์„œ ํ•ฉ์ณ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ด ๋ฐฉ๋ฒ•์€ ์†์ด ์ข€ ๊ฐ€์ง€๋งŒ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ”๋กœ ๋‚˜์™”๋‹ค.

 

 

 

 

 

 

์‚ฌ์‹ค ์˜ˆ์ „์— ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์—ˆ๋Š”๋ฐ ํ”„๋กœ์ ํŠธ ๋‚ ๋ ค ๋จน๋Š” ๋ฐ”๋žŒ์— ๊นŒ๋จน์—ˆ๋‹ค.

๊ทธ ๋ฐฉ๋ฒ•์„ ๋‹ค์‹œ ์ฐพ๊ฒŒ ๋œ๋‹ค๋ฉด ๋ธ”๋กœ๊ทธ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๊ฒ ๋‹ค.

 

 

๋‚˜ ์ฒ˜๋Ÿผ ํ•œ๊ฐœ์˜ ๋ฌธ์ œ๋กœ ํ•˜๋ฃจ๋ฅผ ๋‚ ๋ ค๋จน๋Š” ์‚ฌ๋žŒ์ด ์ ์–ด์ง€๊ธธ ๋ฐ”๋ผ๋ฉฐ..

 

 

+ Recent posts