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을 찍어보니
이렇게 찍히는데 문제는 나온 배열 값들을
<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로 처리하는게 간편합니다.
form으로 하는건 값만 체크하시라고 답변드린거에요..
값 체크후에는 ajax로 처리 하세요.
답변을 작성하시기 전에 로그인 해주세요.