728x90
반응형

삭제버튼을 눌렀을 경우 삭제를 확인하는 alert를 띄어준 후, 확인버튼을 눌렀을 경우

백엔드에 데이터를 전송하고 DB쿼리문으로 해당 데이터를 삭제한다.

 

1. 전 글에서 수정했을 때와 마찬가지로 carlist_condition에 추가된 내용을 참조한다.

insertTr += "<input type='button' value='"+i18nconvert("delete")+"' onclick=delete_one(this,'/car/ajax/car_deleteone') class='btn btn-sm btn-white width-60' name =' "+  Object.array[i].CN +"'></td> ";

 

2. 클릭했을 경우 delete_one 함수를 실행해준다. ( obj는 HTML script에서 선언한 pagingObject이다. )

		
	// 일반 삭제 기능
	function delete_one(obj,url) {
		
		var answer;
	    	answer = confirm(i18nconvert('deleteconfirm'));
		if(answer == true){
			$.ajax({
	    		url: url,
	            type: "POST",
	            dataType: 'json',
	            data: {
	            	select : $(obj).attr('name'),
	            }
	    	}).done(function (data) {  
				if(data.result == 'success') {
					alert(i18nconvert('deletesuccess'));
					location.reload();
				}
				else {
					alert(i18nconvert('choiceerror'));
				}
	    	});
		}
		else {
			return false;
		}
	}

 

 

3. 백엔드에서 받은 데이터를 이용해 DB쿼리문으로 해당 데이터를 삭제해준다.

router.post('/ajax/car_deleteone', isNotLoggedIn, async (req, res, next) => {
  var select = req.body["select"];
  // const CID = req.decoded.CID;
  const CNU = req.decoded.CNU;
  const CUA = moment().format('YYYY-MM-DD hh:mm:ss');
  
  try {
    const carone = await modelQuery(QUERY.Findone,COLLECTION_NAME.Car,{ "CNU" : CNU, "CN" : select.split(' ') },{});
    await modelQuery(QUERY.Create,COLLECTION_NAME.Cardelete,{
      "CNU" : carone.CNU,
      "CC" : carone.CC,
      "CPN" : carone.CPN,
    },{});
    await modelQuery(QUERY.Remove,COLLECTION_NAME.Car,{ "CNU" : CNU, "CN" : select.split(' ') },{});
    await modelQuery(QUERY.Update,COLLECTION_NAME.Company,{where : {"CNU" : CNU}, update : { "CUA" : CUA }},{});
      
    res.send({ result : 'success' });
  } catch (err) {
    res.send({ result : 'fail' });
    console.error(err);
    next(err);
  }
});
728x90
반응형

+ Recent posts