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 = []; 붙이셔야합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
ajax 에서 받아온 data 를
}).done(function(data) {
var obj = JSON.parse(data);
위에처럼 JSON.parse에 담아주시구
obj.category3
하시면됩니다.
답변에 대한 댓글 7개
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
이런식으로 나오게하려는거에요
밑에
Object.keys(obj).forEach(function(v){
if(v == 'brand') brand.push(obj[v]);
})
이렇게해보셨어요 ?
저런식으로하면되요
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
말씀하신 ajax로 가져올 필드명 전송하고
php에서 해당필드명만 추출하는거도 알려주실수 있으신가요?