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

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

QA

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

본문

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

예를들어 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

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

답변을 작성하시기 전에 로그인 해주세요.
전체 45
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT