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

ajax로 mysql 데이터를 변수에 담아오기 채택완료

타버린나무 2년 전 조회 1,948

</p>

<p><script>

// ajax.php

// DB에서 불러온 데이터를 A_1, A_2 ..... 데이터를 변수에 넣고 싶습니다.</p>

<p>        $.ajax({

            url: "sql.php",

            type: "post",

            async:false,

            data : ({ act: "A_restart", pid:pid }),

            success: function (data) {

                      A_1 = data['A_1'];  // A_1 필드 데이터를 A_1 변수에 담기

                  }

        })</p>

<p></script></p>

<p>

 

</p>

<p><?php

// sql.php</p>

<p>$act = $_POST['act'];</p>

<p>    if ($act =='A_restart') {

        $sql = "SELECT * FROM `test` WHERE `PID` = {$fetch['PID']}";

        $fetch = sql_fetch($sql);

    return;

    }</p>

<p>?></p>

<p>

 

sql.php 에서 데이터를 가지고 와서 변수에 담고 싶습니다.

검색을 해봤지만 당체 모르겠습니다. 위 코드는 뇌피셜로 적어본겁니다. 

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

답변 3개

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

※ https://codeanddeploy.com/blog/php/how-to-return-json-response-in-php-mysql-using-ajax-and-jquery

 

<script>

$.ajax({

    url : "sql.php",

    type : "post",

    async : false,

    dataType : 'json',

    data : ({ act: "A_restart", pid:pid }),

    success: function (data) {

        response = JSON.parse(data);

        alert(response.A_1);

        alert(response.A_2);

    }

})

</script>

 

<?php

include_once "common.php"; //그누보드 루트의 common.php</p>

<p> </p>

<p>$act = $_POST['act'];</p>

<p>if ($act =='A_restart') {

    $sql = "

        SELECT *

            FROM `test`

         WHERE `PID` = {$fetch['PID']}

    ";</p>

<p>    $row = sql_fetch($sql);

    echo json_encode($row);

}

?>

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

답변에 대한 댓글 2개

타버린나무
2년 전
빠른 답변 감사합니다.
dataType : 'json', 이부분을 지우면 잘 동작합니다. 감사합니다
마르스컴퍼니
2년 전
https://sir.kr/g5_tip/16118

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

DB 에서 데이터를 자바스크립트 변수로 받아 올때는 아작스 필요없습니다.

 

<?php $A_1 을 불러오는 코드; ?>

<script>

A_1 = "<?php echo $A_1; ?>";

</script>

 

html 로 작접 표현하려면

<?php $A_1 을 불러오는 코드; ?>

<div><?php echo $A_1; "?></div>

 

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

답변에 대한 댓글 1개

타버린나무
2년 전
예.. 이렇게 하면 다음줄에서 if(pid=='' ) { A_1 = 1 } 같은 항목이 들어가 도 말씀하신 코드가 우선? 되더군요..

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

2년 전

</p>

<p><script>

// ajax.php

// DB에서 불러온 데이터를 A_1, A_2 ..... 데이터를 변수에 넣고 싶습니다.</p>

<p>        var A_1 = null;</p>

<p>        var pid = 123;

        $.ajax({

            url: "sql.php",

            type: "post",

            async:false,

            data : ({ act: "A_restart", pid:pid }),

            success: function (data) {</p>

<p>                     try {</p>

<p>                      data = JSON.parse(data);</p>

<p>                      if (data != null && data['A_1'] != null) {

                          A_1 = data['A_1'];  // A_1 필드 데이터를 A_1 변수에 담기</p>

<p>                      }</p>

<p>                     } catch (err) { console.error(err); }

                  }

        })

</script></p>

<p>

 

</p>

<p><?php

// sql.php</p>

<p>$output = ['A_1' => null];</p>

<p>

$act = isset($_POST['act']) ? $_POST['act'] : '';</p>

<p>$pid = isset($_POST['pid']) ? $_POST['pid'] : '';

    if ($act =='A_restart') {

        $sql = "SELECT * FROM `test` WHERE `PID` = {$pid}";

        $fetch = sql_fetch($sql);</p>

<p>        if (empty($fetch['A_1']) === false) {</p>

<p>           $output['A_1'] = $fetch['A_1'];</p>

<p>        }

    }</p>

<p> </p>

<p>echo json_encode($output);

?></p>

<p>

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

답변에 대한 댓글 1개

타버린나무
2년 전
답변 감사합니다.
POST http:...... 500 <Internal server Error 에러가 나는데... 한번만 더 봐주실수 있을까요..

* 위 에러는 제가 if문 안에 복사해 넣었더니 에러 난거네요.
그래도 수정하고 했지만 데이터값을 불러오질 못하네요

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

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

로그인