ajax 질문입니다.

ajax 질문입니다.

QA

ajax 질문입니다.

본문


 <script type="text/javascript">
            $(function() {
                $(document).on("submit", "#loginF", function(event) {
                    event.preventDefault();
                    $.ajax({
                        type: "POST"
                        , url: "/resource/process/login.proc.php"
                        , data: $(this).serialize()
                        , success: function(response) {
                            if (response == "success") {
                                $("#login-error").html("<div class='alert alert-success'>Login success</div>");
                            }
                            if (response == "error") {
                                $("#login-error").html("<div class='alert alert-warning'>Login warning</div>");
                            }
                        }
                    });
                });
            });
        </script>

login.php 안에 위와 같이 폼 밑에 스크립트넣었고.

login 값을 받는파일에

 


$userid = trim($_POST['userName']);
$userpw = $_POST['userPw'];
$sql = "SELECT * FROM userinfo WHERE userId = ? AND userPw = ?";
$stmt = $dbconn->prepare($sql);
$stmt->bind_param('ss',$userid ,$userpw);
$res = $stmt->execute();
$res = $stmt->get_result();
if ($res->num_rows == 1) { 

      echo "success" ;
   
   
} else {

    echo "error";
}

이렇게 넣었습니다. 현재 ajax를 사용하지 않고 출력은 되는데

ajax로 테스트 할떄 무반응입니다 오류도 안뜨구요

도움이 필요합니다 선배님들!

이 질문에 댓글 쓰기 :

답변 3

ajax 통신은 별도의 서버페이지로 인식합니다.

한페이지에서 작동하는 원리가 아니라

로그인 폼에서 별도로 값을 보내는 페이지이기 때문에 받는 페이지도 디비 접속이 가능해서 결과 값을

리턴합니다.

즉 인크루드의 개념과는 다른 원리 입니다.

if (response == "success") {
  $("#login-error").html("<div class='alert alert-success'>Login success</div>");
}
위쪽에 

alert(response);

를 넣으셔서 넘어오시는 값을 확인해 보시고요 

혹 submit 이 전파가 안될수 있으니 이벤트방식을 

$("#loginF").on("submit", function(){... });

형식으로 하시던가 

form 문에 실행함수를 넣어줘 보세요 
<form id="loginF" onsubmit="return login_submit()">

원인을 찾았습니다 현재 로그인 값 받는 파일 부분에 디비커넥팅 부분 include해서 사용중인데
include_once("./../include/db.inc.php");
db include파일에 접속정보를 로그인 값 받는곳에서 접속하게 코드를 복붙하니
ajax가 정상적으로 작동합니다.
하지만 저는 include해서 사용을 해야되는데 이것에 대한 답변을 좀받고 싶습니다.!

$stmt->bind_param('ss',$userid ,$userpw); 이게 잘못됐어요 바인딩 처리시 물음표일적에는 1,2 이렇게 매개변수에 넣어야하고 $userid, $userpw는 분리해서 바인딩해야되요

그러니까 즉 $stmt->bindParam(1,$this->userid, PDO::PARAM_STR);

두개니까 하나더 추가하면되요 원칙상 저렇게 해야한데 mysqli랑 헷갈린거같아요 

글고 num_rows 이건 mysqli이고 pdo로는 rowCount()이걸 사용해야되요

 

답변을 작성하시기 전에 로그인 해주세요.
전체 18
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT