ajax를 통해 받은 json 데이터를 나눠서 변수를 주고싶은데 어떻게하나요?

ajax를 통해 받은 json 데이터를 나눠서 변수를 주고싶은데 어떻게하나요?

QA

ajax를 통해 받은 json 데이터를 나눠서 변수를 주고싶은데 어떻게하나요?

답변 2

본문

모델명 검색시 상품에대한데이터를 출력하는건데 저렇게 뭉텅이로 다 출력말고 

예를들어 category3만 출력하고 싶을때 어떻게하나요???

JSON데이터 형태말고 디지털/가전 만출력하고싶습니다

 

검색페이지 코드와 몽고디비연결과조회 코드입니다.

===================================================================

 

<?php

include_once('./_common.php');

 

include_once(G5_PATH . '/head.php');

$g5['title'] = '견적신청';

 

if ($member['mb_level'] == '2') {

    alert('업체회원은 이용하실 수 없습니다.');

}

?>

<div style="width:500px; height:500px;">

    <input type="text" id="model_code" placeholder="모델명을 입력해주세요."><input type="submit" value="검색하기" onclick="model_search()">

</div>

<div>

    <p id="search_result"></p>

</div>

<script>

    function model_search() {

 

        $.ajax({

            type: "GET",

            url: "<?php echo G5_URL ?>/ajax.mongo.php",

            data: {

                model_code: $('#model_code').val()

            }

        }).done(function(data) {

            $('#seach_result').text(data.category3);

            var search_result = JSON.stringify(data);

            console.log(JSON.stringify(data));


 

        });

    }

</script>

<?php

include_once(G5_PATH . '/tail.php');

?>

=================================================

 

 

<?php

$model_code = $_GET['model_code'];

// required headers

header("Access-Control-Allow-Origin: *");

header("Content-Type: application/json; charset=UTF-8");

 

// include database file

include_once 'mongodb_config.php';

 

$dbname = 'product';

$collection = 'product';


 

//DB connection

$db = new DbManager();

$conn = $db->getConnection();

 

// read all records

$filter = ['model_code' => $model_code];

$option = [];

$read = new MongoDB\Driver\Query($filter, $option);

 

//fetch records

$records = $conn->executeQuery("$dbname.$collection", $read);

 

echo json_encode(iterator_to_array($records), JSON_UNESCAPED_UNICODE);



 

?>

 

 

이 질문에 댓글 쓰기 :

답변 2

배열안에 object가 있었군요..

 

for (var objs of obj ) {
Object.keys(objs).forEach(function(v){
    if(v == 'brand')  brand.push(objs[v]);
})
}

이게맞습니다. 한번해보시고 안되시면말씀주세요 상단에 var brand = []; 붙이셔야합니다.

ajax 에서 받아온 data 를

}).done(function(data) {

 

var obj = JSON.parse(data);

 

위에처럼 JSON.parse에 담아주시구

obj.category3

하시면됩니다.

 

 

var obj = JSON.parse(JSON.stringify(data));
console.log(obj);을 쓰면

[{…}]
0: {_id: {…}, id: "9561276", brand: "루베크", model_name: "공기청정에어워셔", model_code: "RU-3000AP", …}
length: 1
__proto__: Array(0)

이렇게 나옵니다.

여기서 brand만 뽑고 싶으면 어떻게하나요?

코드상단에
var brand = [];
붙이시구

var obj = JSON.parse(JSON.stringify(data));
밑에

Object.keys(obj).forEach(function(v){
    if(v == 'brand')  brand.push(obj[v]);
})
하시면 brand 배열에 brand 값들이 담겨져있을겁니다.

근데구지이렇게안하고
따로 ajax로 가져올 필드명 전송하시고
php에서 해당필드명만 추출하심되는데...

제가 처음하는거라 어렵네요ㅠㅠ

만드려는 기능이 페이지에서 검색을 하면 몽고디비에 있는 데이터들을 불러와서 그 안에 있는
brand나 category를 각각 뽑아서

html에서

검색하신 상품은
brand : LG
category : TV

이런식으로 나오게하려는거에요

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #json ×
전체 150
© SIRSOFT
현재 페이지 제일 처음으로