javascript 팝업 창에서 입력받은 값 post 방식으로 처리하기


test.ejs

<script type="text/javascript">
      function fn_edit_username(method, path) {

        method = method || "post";
        var form = document.createElement("form");
        form.setAttribute("method", method);
        form.setAttribute("action", path);

        swal({   title: "An input!",
                  text: "Write something interesting:",
                  type: "input",
                  showCancelButton: true,
                  closeOnConfirm: false,
                  animation: "slide-from-top",
                  inputPlaceholder: "Write something"
          }, function(inputValue) {
                if (inputValue === false)
                  return false;

                if (inputValue === "") {
                  swal.showInputError("You need to write something!");
                  return false;
                }

                swal("Nice!", "You wrote: " + inputValue, "success");
                document.body.appendChild(form);
                form.submit();

            });


      }
    </script>

  </head>
  <body>
    <form action="/edit_username" method="post" >
      <a href="javascript:fn_edit_username('post', '/edit_username')" data-user-id ="1">방문자명 입력</a>
    </form>
  </body>

app.js

app.post('/edit_username', function(req, res) {
  pool.getConnection(function(err, conn) {
      console.log(req.body.editname);

    });
});

서버 환경은 node.js입니다.

위처럼 구현하여 팝업창에서 입력받은 값을 post 방식으로 mysql에 저장하려고 하는데요.

팝업창 값 -> post 방식으로 값을 받는 방법을 모르겠네요...

app.js 에서 console.log(req.body.editname); 로 접근하려 했는데...

답변 부탁드립니다... ㅠㅠ

  • 2016년 05월 24일에 작성됨
    웹 사이트 공부 중입니다. 많은 도움 주시면 좋아요.

조회수 408


1 답변


좋아요
0
싫어요
채택취소하기

jquery의 ajax를 이용하면 쉽게 값을 전송할 수 있습니다.

'방문자명 입력' 이 부분을 form으로 감싸지 마시고 팝업이 떴을경우 값이 들어오는 콜백함수 안에서 ajax로 전송해보세요.

 function fn_edit_username(method, path) {

        method = method || "post";
        var form = document.createElement("form");
        form.setAttribute("method", method);
        form.setAttribute("action", path);

        swal({   title: "An input!",
                  text: "Write something interesting:",
                  type: "input",
                  showCancelButton: true,
                  closeOnConfirm: false,
                  animation: "slide-from-top",
                  inputPlaceholder: "Write something"
          }, function(inputValue) {
                if (inputValue === false)
                  return false;

                if (inputValue === "") {
                  swal.showInputError("You need to write something!");
                  return false;
                }

                // 아래 부분 jquery ajax 메소드를 이용해서 전송하면 됩니다. 
                $.post("/edit_username", { username: inputValue} ).done(function() { 
                swal("Nice!", "You wrote: " + inputValue, "success"); });
            });


      }
  • 2016년 06월 09일에 작성됨
    안드로이드, 루비온레일즈

  • 감사합니다. 글 쓴지 오래 됐는데 이제라도 해답을 알게되어 다행입니다. ㅠ    상남자   2016.6.9 16:34     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close