• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 글 수정 페이지 질문입니다.

글 수정 페이지 질문입니다.

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #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> 이렇게 하면 내용이 바뀌는게 맞는지 여부를 알고 싶어 질문을 올립니다.

         

    #33850

    codingapple
    키 마스터

    query string이랑 url 파라미터는 용도가같아서 둘 중 하나만 쓰면 됩니다 

    url 파라미터 /:어쩌구 문법은 서버에서만 쓰는 문법입니다 

    버튼누를 때 수정요청하려는데 폼태그 안쓸거면 ajax 쓰는게 나을듯 합니다 

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠