json_encode() 배열 값 출력 질문

json_encode() 배열 값 출력 질문

QA

json_encode() 배열 값 출력 질문

본문

ajax.php


        $address    = array( '전체','서울','경기','인천','대전','대구','부산','광주','울산','세종','강원','충북','충남','전북','전남','경북','경남','제주' );
        $address_2  = array( '','서울시','경기도','인천시','대전시','대구시','부산시','광주시','울산시','세종시','강원도','충청북도','충청남도','전라북도','전라남도','경상북도','경상남도','제주도' );
        $address_3  = array( '','서울특별시','','인천광역시','대전광역시','대구광역시','부산광역시','광주광역시','울산광역시','세종특별자치시','강원특별자치도','','','','','','','제주특별자치도');//도시찾기 버튼으로 검색시
        if($find_sido && $find_sigugun){ //select로 검색시
            $sql    = "select *
            from sw_machine_holder
           where machine_address like '$find_sido%' '$find_sigugun%'
           or machine_address2 like '$find_sido%' '$find_sigugun%'
           and mapLatitude > '' and
           mapLongitude > '' and
           petroom = 'Y'
           GROUP BY petroom_name
           ";
    $row = "SELECT count(count) as total
    FROM (SELECT count(petroom_name) as count FROM sw_machine_holder
    WHERE petroom = 'Y' and machine_address like '$find_sido%' '$find_sigugun%' or machine_address2 like '$find_sido%' '$find_sigugun%' GROUP BY petroom_name)
    as count";
       
        }else if( $find_machine ){ //text로 지점명 입력 검색시
            // 우선 시 / 도 에있는 값인지 확인
            if(in_array($find_machine ,$address)){
                $sql    = "select *
                    from sw_machine_holder
                    where machine_address like '$find_machine%'
                    and mapLatitude > '' and
                    mapLongitude > '' and
                    petroom = 'Y'
                    GROUP BY petroom_name
               ";
            } else {
                $sql    = "select *
                    from sw_machine_holder
                    where (machine_address REGEXP '$find_machine' or machine_address2 REGEXP '$find_machine') and petroom = 'Y'
                    GROUP BY petroom_name
               ";
            }
             $row = "SELECT count(count) as total
             FROM (SELECT count(petroom_name) as count FROM sw_machine_holder
             WHERE petroom_name like '%$find_machine%'
                        or machine_address like '$find_machine%'
                        and mapLatitude > '' and
                        mapLongitude > '' and
                        petroom = 'Y'
               GROUP BY petroom_name)
             as count";
        } else if( $find_address ) { //도시찾기 버튼으로 검색시
                if($find_address == "전체"){
                    $sql    = "select *
                    from sw_machine_holder
                    where mapLatitude > '' and
                    mapLongitude > '' and
                    petroom = 'Y'
                    GROUP BY petroom_name
                    ";
                    $row = "SELECT count(count) as total
                    FROM (SELECT count(petroom_name) as count FROM sw_machine_holder
                    WHERE petroom = 'Y'
                   and mapLatitude > '' and
                   mapLongitude > '' GROUP BY petroom_name)
                       as count";
                }else {
                $j  = array_search( $find_address, $address ) === false ? ( array_search( $find_address, $address_2 ) === false ? array_search( $find_address, $address_3 ) : array_search( $find_address, $address_2 ) ) : array_search( $find_address, $address );
   
                if ( $j !== false ) {
                    $fine_address_like  = " and ( ";
   
                    if ( $address[$j] > '' ) {
                        $fine_address_like  .= "machine_address like '" . $address[$j] . "%'";
        "               or machine_address like '" . $address_2[$j] . "%' or machine_address like '" . $address_3[$j] . "%' )";
                    }
                    if ( $address_2[$j] > '' ) {
                        if ( $fine_address_like != "( " ) {
                            $fine_address_like  .= " or ";
                        }
                        $fine_address_like  .= "machine_address like '" . $address_2[$j] . "%'";
                    }
                    if ( $address_3[$j] > '' ) {
                        if ( $fine_address_like != "( " ) {
                            $fine_address_like  .= " or ";
                        }
                        $fine_address_like  .= "machine_address like '" . $address_3[$j] . "%'";
                    }
                    if ( $fine_address_like != "( " ) {
                        $fine_address_like  .= " ) ";
                    }
                }
   
                $sql    = "select *
                             from sw_machine_holder
                            where
                            mapLatitude > '' and
                            mapLongitude > '' and
                            petroom = 'Y'
                            $fine_address_like
                            GROUP BY petroom_name
                            ";
                  $row   = "SELECT count(count) as total
                  FROM (SELECT count(petroom_name) as count FROM sw_machine_holder
                  WHERE petroom = 'Y' and machine_address like '$find_address%' GROUP BY petroom_name)
                  as count";    
               $status = "select * from sw_machine_holder where petroom = 'Y' and admin_status = '이용가능'";  
                                  }
            } else { //위 세가지가 안먹을 시
            $sql    = "select *
                         from sw_machine_holder
                         where mapLatitude > '' and
                         mapLongitude > '' and
                         petroom = 'Y' and
                         petroom_name != ''
                         GROUP BY petroom_name ";
                                     
                         $row = "SELECT count(count) as total
                    FROM (SELECT count(petroom_name) as count FROM sw_machine_holder
                    WHERE petroom = 'Y'
                   and mapLatitude > '' and
                   mapLongitude > '' GROUP BY petroom_name)
                       as count";
    }
    $query  = sql_query( $sql );
    $machine_count = sql_query($row);
    $mapNameArray   = array();
    $statusArray    = array();
    $latArray   = array();
    $lotArray   = array();
    $arr   = array();
    $arr["data"]   = array();
 
    for($i=0; $row=sql_fetch_array($query); $i++){
 
        $find_status_sql    = sql_fetch("select * from sw_machine_data where petroom = 'Y' and data2 = '{$row['machine_uuid']}' order by idx desc limit 1");
        $find_status    = $find_status_sql['data1'];
        $make_status    = explode(' ', $find_status);
 
                   $mapNameArray[$i]    = $row['petroom_name'];
                   $latArray[$i]    = $row['mapLatitude'];
                   $lotArray[$i]    = $row['mapLongitude'];
 
                   $status_check = sql_fetch("select petroom_name from sw_machine_holder where petroom = 'Y' and admin_status != '사용불가능' and petroom_name ='$mapNameArray[$i]'");
 
                 if($status_check['petroom_name'] == $mapNameArray[$i]){
                     $statusArray[$i] = "이용가능";
                     $row['admin_status'] = "이용가능";
                } else {
                     $statusArray[$i] = "이용불가";
                     $row['admin_status'] = "이용불가";
                 }
                }
 array_push( $arr["data"], $mapNameArray);
 array_push( $arr["data"], $latArray);
 array_push( $arr["data"], $lotArray);
 array_push( $arr["data"], $statusArray);
 
 //var_dump( $arr );
//  echo json_decode( $arr );
 //$data = json_decode( $arr );
 echo json_encode( $arr );
?>  

form안에 있는 value값들을 ajax로 받아서 for문을 돌려 나온 값들을 json 배열에 담아 보냈습니다.


 $.ajax({
            type: "POST",
            url: ajax_url,
            data: frmData,
            dataType: "JSON",
            success: function(response) {
               
                console.log(response);
            },

이렇게 console을 찍어보니 

1889015246_1691507604.3079.png

이렇게 찍히는데 문제는 나온 배열 값들을


 <h4>
<?php echo $mapNameArray[$i] ;?>
 </h4>

이렇게 출력할수는 없나요?? 위에 코드도 생략되었지만 ajax 페이지와 같이 for문을 돌렸을때 원하는 값을 찾기 위한 코드입니다.

아니면 ajax처리에서 배열로 보내면 안되는것이었나요..

아니면 console로 찍힌 저 배열들을 <script>인데 어떻게 출력해야할지 아예 감이 안잡힙니다ㅠㅠ 

이 질문에 댓글 쓰기 :

답변 4

$.each(dada.function(i,$i) {

   $.each($i,functin(j,$j) {

        $j 가 대구, 좌표값, 좌표값, 이용가능 식으로 차례대로 나옵니다.

    }

}

위 반복문으로 html을 만들어서 원하는 위치에 넣으시면 됩니다.

모바일이라 자세히 적지는 못하겠네요

ajax 로 처리 하는 부분을 주석처리하시고 일반 form으로 submit 해서 값을 확인하시고 ajax로 처리하는게 간편합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 2

회원로그인

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