자바스크립트에서 이중배열을 받아서 처리하고 싶습니다.
본문
ajax로 페이지를 만들고 있는데
$.ajax({
url : "sql.php",
type : "post",
data : {
sql : "select * from member",
}
}).done(function(result){
console.log(result);
});
sql.php 부분은
<?php
include_once($_SERVER[DOCUMENT_ROOT]."/999/dbconfig.php");
$sql = $_POST['sql'];
$result = mysqli_query($connect, $sql);
while ($row = mysqli_fetch_array($result)) {
// code...
$member_tb[] = array('no' => $row['no'], 'id' => $row['id'], 'name' => $row['name'], 'address' => $row['address'], 'tel' => $row['tel']);
}
print_r($member_tb);
?>
sql.php에서 리턴되는 값은
Array
(
[0] => Array
(
[no] => 1
[id] => bkcha
[name] => 고길동
[address] => 대전시 서구 둔산1동
[tel] => 000-9877
)
[1] => Array
(
[no] => 2
[id] => bykang
[name] => 홍길동
[address] => 대전시 서구 둔산동
[tel] => 000-3243
)
)
이런식이라면
리턴되는 자바스크립트 부분에서는
이 값을 어떻게 사용할 수 있을까요?
위 값들은 콘솔에 찍어본 리턴값들인데
특정값을 접근해서 출력하려면?
특정값 접근이 가능하다면 $.each나 포문을 이용해서
출력 가능할거 같은데...어떤가요?
!-->!-->
답변 2
음.. 그누보드에서 sql 함수를 왜 안하는진 모르겠지만~ 개인 공부를 하신다고 생각해서 얘기 드리자만
제이쿼리 에이젝스 에서 이렇게 쿼리를 주시면 안되요 ㅋㅋㅋ 이건 어떠한 값을 data 에다가 적용하시던지 해야되요
data : {
sql : "select * from member",
}
data : { test: '테스트' } << 이렇게 대충 예제로..
백단에서 이렇게 하는게 정답이에요
$sql = "select * from member";
$result = mysqli_query($connect, $sql);
와일문 안에 배열도
$member_tb[] <<
이걸 초기화 해야되요
$member_tb = []; 혹은 $member_tb = array(); << 이렇게 해야되요
결국엔 아래 처럼 하시면 되요
$member_tb = [];
while ($row = mysqli_fetch_array($result)) {
// code...
$member_tb[] = array('no' => $row['no'], 'id' => $row['id'], 'name' => $row['name'], 'address' => $row['address'], 'tel' => $row['tel']);
}
그리고 마지막으로 제이쿼리 에이젝스를 뿌려주려면 each문으로 뿌려주시던지 아님 자스로 for, foreach문으로..
$.each(result
, function() {
console.log(result)
});
콘솔로그 찍어서 배열이 어떻게 나오는지 확인해서 뿌려보세요
너무 어렵지 않으니~ 구글링도 해보시구요 예제 많습니다~
ajax 에서 이중배열을 받아서 처리하는 것은..
방법이 없는 것은 아니지만.. 상대적으로 많이 어렵습니다.
ajax 에서 데이터 출력까지 처리한뒤,
출력된 문자열을 받아서 보여주는 것이 상대적으로 쉬운 편입니다.
<div id="div1">ajax 에서 처리된 내용 이곳에 노출</div>
<script>
$.ajax({
url : "sql.php",
type : "post",
data : {
sql : "select * from member",
}
}).done(function(result){
$('#div1').html(result);
});
</script>
!-->