테스트 사이트 - 개발 중인 베타 버전입니다

폼전송 ajax 질문입니다. 채택완료

유히 6년 전 조회 3,869

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

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

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

답변 3개

채택된 답변
+20 포인트
6년 전

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

 

$id = $_POST['id'];

get일경우는 

$_GET으로 수정.

GET  POST 구분없이 받고 싶을 땐

$_REQUEST

로그인 후 평가할 수 있습니다

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

6년 전

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

로그인 후 평가할 수 있습니다

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

6년 전

</p>

<p>      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");

        });

     });</p>

<p>

 

</p>

<p><?php

    $name = $_REQUEST['name'];

    $phone = $_REQUEST['phone'];

    $postcode = $_REQUEST['postcode'];

    $address = $_REQUEST['address'];

    $detailaddress = $_REQUEST['detailaddress'];

    $email = $_REQUEST['email'];</p>

<p>    $return = array(

        "code"      => 0,

        "message"   => "알 수 없는 오류가 발생했습니다."

    );</p>

<p>    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"; // 오류 메시지

        }</p>

<p>    } else {

        $return["code"] = 0; // 거짓

        $return["message"] = "요청정보가 없습니다."; // 오류 메시지

    }</p>

<p>    echo json_encode($return);

    exit;

?></p>

<p>

 

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

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

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

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

로그인