채택완료

폼전송 ajax 질문입니다.

2019-03-25 (월) 15:45:33 4,144

serialize() 함수를 이용하여 폼을 ajax로 전송하려고 하는데요.

ajax를 받아오는 파일에서 폼에 저장된 값을 각각의 php 변수로 어떻게 받아올 수 있나요?

|

답변 3개 / 댓글 2개

채택된 답변
+20 포인트

전송하는 값의 name이 id인이고 전송방식이 post일 경우

$id = $_POST['id'];

get일경우는 

$_GET으로 수정.

GET  POST 구분없이 받고 싶을 땐

$_REQUEST

data: params 이렇게 괄호없이 data를 전송하니 성공하네요ㅠㅠ 답변해주신분들 모두 감사합니다.

Copy
var params = $("form[name=form2]").serialize();
        $.ajax({
            method: "post",
            url: "./form_json.php",
            dataType: "json",
            data: {params}
        }).done(function( data ) {
            //alert( "success" );
            if (data.code == 1)
            {
                alert(data.message);
            } else {
                alert(data.message);
            }
        }).fail(function() {
            alert("error");
        });
     });
Copy
<?php
    $name = $_REQUEST['name'];
    $phone = $_REQUEST['phone'];
    $postcode = $_REQUEST['postcode'];
    $address = $_REQUEST['address'];
    $detailaddress = $_REQUEST['detailaddress'];
    $email = $_REQUEST['email'];

    $return = array(
        "code"      => 0,
        "message"   => "알 수 없는 오류가 발생했습니다."
    );

    if($name) {
        // 주소 & ip 동시 중복 검사
        $sql = "select문";
        $res = mysqli_query($db, $sql);
            
        if($res) {
            $row = mysqli_fetch_array($res);
            if ($row[0] = 0) {
                $sql = "insert문";
                $res = mysqli_query($db, $sql);
                if($res) {
                    $return["code"] = 1; // 참
                    $return["message"] = "등록이 완료되었습니다."; // 메시지
                } else {
                    $return["code"] = 0; // 거짓
                    $return["message"] = "DB입력오류2"; // 오류 메시지
                }
            } else {
                $return["code"] = 0; // 거짓
                $return["message"] = "주소와 IP 중복 입력 불가1"; // 메시지
            }
        } else {
                $return["code"] = 0; // 거짓
                $return["message"] = "대상 정보가 없습니다.3"; // 오류 메시지
        }

    } else {
        $return["code"] = 0; // 거짓
        $return["message"] = "요청정보가 없습니다."; // 오류 메시지
    }

    echo json_encode($return);
    exit;
?>

계속 요청정보가 없다는 오류메시지가 뜨네요. $name을제대로 못받아오는 걸까요?ㅠㅠ

답변에 대한 댓글 2개

받는 php에서
print_r($__REQUEST);
로 변수가 제대로 들어오는지 확인해보세요.
이걸 $row = mysqli_fetch_array($res); if($res) { 아래 말고 위에 놓으면 어떨까요? post로 제대로오는데 가공하는부분에서 잘못된거같아서..

답변을 작성하려면 로그인이 필요합니다.