-
글쓴이글
-
2022년 5월 13일 01:05 #33824
서영석참가자<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>상품등록페이지</title>
</head>
<body>
<h4 class="container mt-4"><strong>상품등록페이지</strong></h4><div class="container mt-3">
<form action="/edit?method=PUT" method="POST">
<div class="form-group">
<label>향수 카테고리분류</label>
<select name="prdcategory" id="tmpSelect1">
<option value="<%=goods.prdcategory=='Blooming signiture' ? 'selected' : '시그니처'%>">시그니처</option>
<option value="<%=goods.prdcategory=='Twilight Blooming' ? 'selected' : '트와일라잇'%>">트와일라잇</option>
<option value="<%=goods.prdcategory=='Pure Oil Blossom' ? 'selected' : '블라썸'%>">블라썸</option>
<option value="<%=goods.prdcategory=='Parfum de Fruits' ? 'selected' : '프루츠'%>">프루츠</option>
</select>
</div>
<div class="form-group">
<label>상품명</label>
<input value="<%= goods._id %>" name="id" style="display : none">
<input type="text" class="form-control" name="prdname" value="<%=goods.상품명%>" placeholder="상품이름을 적으세요">
</div>
<div class="form-group">
<label>가격</label>
<input type="text" name="prdprice" value="<%=goods.가격%>" class="form-control" onkeyup="inputNumberFormat(this)"/>
</div>
<div class="form-group">
<label>향수 종류</label>
<select name="pfcategory" id="tmpSelect2">
<option value="<%=goods.pfcategory=='Perfume' ? 'selected' : '퍼퓸'%>">퍼퓸</option>
<option value="<%=goods.pfcategory=='Eau de Perfume' ? 'selected' : '오드 퍼퓸'%>">오드 퍼퓸</option>
<option value="<%=goods.pfcategory=='Eau de Toilette' ? 'selected' : '오드 뜨왈렛'%>">오드 뜨왈렛</option>
<option value="<%=goods.pfcategory=='Eau de Cologne' ? 'selected' : '오드 코롱'%>">오드 코롱</option>
</select>
</div>
<div class="form-group">
<label>향구성</label>
<input type="text" class="form-control" name="prdperfume" value="<%=goods.향구성%>">
</div>
<div class="form-group">
<label>수량</label>
<input type="text" class="form-control" name="prdcount" value="<%=goods.수량%>">
</div>
<div class="form-group">
<label>이미지</label>
<input type="text" class="form-control" name="imgpath" value="<%=goods.이미지%>">
</div>
<div class="form-group">
<label>상세설명</label>
<input name="explain" cols="1" rows="1" placeholder="상세설명" value="<%=goods.상세설명%>">
</div>
<button type="reset">reset</button>
<button type="submit" onclick="location.href='/edit?method=PUT/:<%goods._id%>'">Submit</button>
</form>
</div>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script>
function inputNumberFormat(obj) {
obj.value = comma(uncomma(obj.value));
}function comma(str) {
str = String(str);
return str.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, '$1,');
}function uncomma(str) {
str = String(str);
return str.replace(/[^\d]+/g, '');
}
</script>
<script type="text/javascript">
$(document).ready(function() {
var tmpSelect1 = $('#tmpSelect1 option:selected').val();
console.log(tmpSelect1); // B
});
</script>
<script type="text/javascript">
$(document).ready(function() {
var tmpSelect2 = $('#tmpSelect2 option:selected').val();
console.log(tmpSelect2); // B
});
</script>
<!-- <script type="text/javascript">
$(function(){
$('plus').click(function(){})
})
</script> -->
</body>
</html>server.js
app.get('/edit/:id', (req, res)=>{
db.collection('good').findOne({ _id : parseInt(req.params.id) },(error, result)=>{
res.render('edit.ejs', { goods : result })
});
});app.put('/edit', (req, res)=>{
db.collection('good').updateOne( {_id : parseInt(req.body.id) }, {$set : { 카테고리분류 : req.body.카테고리분류 , 상품명 : req.body.상품명, 가격 : req.body.가격, 향수종류 : req.body.향수종류, 향구성: req.body.향구성, 수량 : req.body.수량, 이미지 : req.body.이미지, 상세설명 : req.body.상세설명 }}, function(){
console.log('수정완료')
res.redirect('/goodlist')
});
});입니다.
<button type="submit" onclick="location.href='/edit?method=PUT/:<%goods._id%>'">Submit</button>
이버튼을 이용하여 내용을 수정을 하려고 하니
cannot post edit 라고 나옵니다.
Cannot POST /edit
methodoverride put 요청을 위해
<form action="/edit?method=PUT" method="POST">
했습니다.
그러면
<button type="submit" onclick="location.href='/edit?method=PUT/:<%goods._id%>'">Submit</button> 이렇게 하면 내용이 바뀌는게 맞는지 여부를 알고 싶어 질문을 올립니다.
2022년 5월 13일 09:47 #33850
codingapple키 마스터query string이랑 url 파라미터는 용도가같아서 둘 중 하나만 쓰면 됩니다
url 파라미터 /:어쩌구 문법은 서버에서만 쓰는 문법입니다
버튼누를 때 수정요청하려는데 폼태그 안쓸거면 ajax 쓰는게 나을듯 합니다
-
글쓴이글
- 답변은 로그인 후 가능합니다.