이전 목록 다음
채택완료

ajax로 mysql 데이터를 변수에 담아오기

2023-02-13 (월) 18:54:10 2,982
Copy
<script>
// ajax.php
// DB에서 불러온 데이터를 A_1, A_2 ..... 데이터를 변수에 넣고 싶습니다.

        $.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 변수에 담기
                  }
        })

</script>
Copy
<?php
// sql.php

$act = $_POST['act'];

    if ($act =='A_restart') {
        $sql = "SELECT * FROM `test` WHERE `PID` = {$fetch['PID']}";
        $fetch = sql_fetch($sql);
    return;
    }

?>

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

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

|

답변 3개 / 댓글 4개

채택된 답변
+20 포인트
2023-02-13 (월) 19:03:56

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

Copy
<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>
Copy
<?php
include_once "common.php"; //그누보드 루트의 common.php

 

$act = $_POST['act'];

if ($act =='A_restart') {
    $sql = "
        SELECT *
            FROM `test`
         WHERE `PID` = {$fetch['PID']}
    ";

    $row = sql_fetch($sql);
    echo json_encode($row);
}
?>

답변에 대한 댓글 2개

2023-02-13 (월) 20:01:16
빠른 답변 감사합니다.
dataType : 'json', 이부분을 지우면 잘 동작합니다. 감사합니다
2023-02-13 (월) 19:03:05

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

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

<script>

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

</script>

html 로 작접 표현하려면

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

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

답변에 대한 댓글 1개

2023-02-13 (월) 20:03:19
예.. 이렇게 하면 다음줄에서 if(pid=='' ) { A_1 = 1 } 같은 항목이 들어가 도 말씀하신 코드가 우선? 되더군요..
Copy
<script>
// ajax.php
// DB에서 불러온 데이터를 A_1, A_2 ..... 데이터를 변수에 넣고 싶습니다.

        var A_1 = null;

        var pid = 123;
        $.ajax({
            url: "sql.php",
            type: "post",
            async:false,
            data : ({ act: "A_restart", pid:pid }),
            success: function (data) {

                     try {

                      data = JSON.parse(data);

                      if (data != null && data['A_1'] != null) {
                          A_1 = data['A_1'];  // A_1 필드 데이터를 A_1 변수에 담기

                      }

                     } catch (err) { console.error(err); }
                  }
        })
</script>
Copy
<?php
// sql.php

$output = ['A_1' => null];


$act = isset($_POST['act']) ? $_POST['act'] : '';

$pid = isset($_POST['pid']) ? $_POST['pid'] : '';
    if ($act =='A_restart') {
        $sql = "SELECT * FROM `test` WHERE `PID` = {$pid}";
        $fetch = sql_fetch($sql);

        if (empty($fetch['A_1']) === false) {

           $output['A_1'] = $fetch['A_1'];

        }
    }

 

echo json_encode($output);
?>

답변에 대한 댓글 1개

2023-02-13 (월) 20:09:24
답변 감사합니다.
POST http:...... 500 <Internal server Error 에러가 나는데... 한번만 더 봐주실수 있을까요..

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

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