AJAX 실시간 쉬운예제 없을까요?? 정보
AJAX 실시간 쉬운예제 없을까요??
본문
요즘은 실시간이 대센지...
페이지 깜빡거리는거에 결벽증걸리신 분이 있더라구요;; ㄷㄷ
상품문의페이지에서 AJAX를 이용해서 페이지 이동없는 글쓰기는 어떻게 했는데
문제는 글을쓴 후 그 글을 불러와야하는데 페이지를 세로고침하지 않고선 안불러와지네요;;
이거관해서 적당한 예제 없을까요??
알고계신분은 공유점 ㅎㅎㅎ
추천
0
0
댓글 8개

아마 도치즈님께서 생각하시는 방식이 제가 생각하는것과 별반 다를께없어 보여요.
무슨말이냐면용..
AJAX로 글쓰기를 하셨다면 글쓰기가 성공인지 실패인지 분명 리턴 받으실테고
성공인지 실패인지 값을 받으실때 데이터 더 추가해서 클라이언트에 보내보세요
글을 쓴후에 디비 쿼리에 LAST_ID 값을 받아오셔서
그 아이디로 다시 한번 AJAX호출하여 쿼리결과를 받고 화면에 뿌려주시는게 낳지않을까싶습니다.
음 제가쓰는 코드로 다시한번 댓글 남겨드리겠음.
무슨말이냐면용..
AJAX로 글쓰기를 하셨다면 글쓰기가 성공인지 실패인지 분명 리턴 받으실테고
성공인지 실패인지 값을 받으실때 데이터 더 추가해서 클라이언트에 보내보세요
글을 쓴후에 디비 쿼리에 LAST_ID 값을 받아오셔서
그 아이디로 다시 한번 AJAX호출하여 쿼리결과를 받고 화면에 뿌려주시는게 낳지않을까싶습니다.
음 제가쓰는 코드로 다시한번 댓글 남겨드리겠음.

------------------Jquery AJAX는 아실테고...------------------
$.ajax({
type: "POST",
url: "글쓰기 값 보내는 주소(POST로 값 넘깁니다)",
data: {subject:"쏼라 쏼라",content:"쏼라쏼라~"},
success: function (result) {
//여기에 화면에 보여질 값 들 처리..
},
error: function(error) {
alert("에러"+JSON.stringify(error));
}
});
-----코드이그나이터에서 제가 주료 쓰는 방식 입니다--------------------
컨트롤러
public function entry_post() {
$subject = $this->input->get_post('subject');
$content = $this->input->get_post('content');
$result = $this->cms_m->entry_post($subject, $content);
if($result === true) {
//글쓰기가 성공임으로 여기서 부터 코드 생성
} else {
//글쓰기가 실패임으로 여기서 부터 코드 생성
}
}
모델
function entry_post($subject = null, $content = null) {
//subject 랑 content 중 둘중 하나가 null일경우 리턴.
if($subject == null || $content == null) {
return false;
}
//MySQL 트랜젝션 실시(쿼리처리도중 하나라도 오류나면 롤백)
$this->db->trans_begin();
$data = array(
'subject'=>$subject,
'content'=>$content
);
$query = $this->db->insert('입력될테이블명',$data);
//트랜젝션 결과를 토대로 리턴값 적용
if ($this->db->trans_status() === FALSE) {
$this->db->trans_rollback();
return false;
} else {
$this->db->trans_commit();
return true;
}
}
$.ajax({
type: "POST",
url: "글쓰기 값 보내는 주소(POST로 값 넘깁니다)",
data: {subject:"쏼라 쏼라",content:"쏼라쏼라~"},
success: function (result) {
//여기에 화면에 보여질 값 들 처리..
},
error: function(error) {
alert("에러"+JSON.stringify(error));
}
});
-----코드이그나이터에서 제가 주료 쓰는 방식 입니다--------------------
컨트롤러
public function entry_post() {
$subject = $this->input->get_post('subject');
$content = $this->input->get_post('content');
$result = $this->cms_m->entry_post($subject, $content);
if($result === true) {
//글쓰기가 성공임으로 여기서 부터 코드 생성
} else {
//글쓰기가 실패임으로 여기서 부터 코드 생성
}
}
모델
function entry_post($subject = null, $content = null) {
//subject 랑 content 중 둘중 하나가 null일경우 리턴.
if($subject == null || $content == null) {
return false;
}
//MySQL 트랜젝션 실시(쿼리처리도중 하나라도 오류나면 롤백)
$this->db->trans_begin();
$data = array(
'subject'=>$subject,
'content'=>$content
);
$query = $this->db->insert('입력될테이블명',$data);
//트랜젝션 결과를 토대로 리턴값 적용
if ($this->db->trans_status() === FALSE) {
$this->db->trans_rollback();
return false;
} else {
$this->db->trans_commit();
return true;
}
}

Jquery AJAX는 이해했는데 코드이그나이터는 노력을 좀 해봐야겠군요 ㅎㅎ
재가 원하는 기능이에요 ㅎㅎ
답변 감사합니다 ㅎㅎㅎㅎ
재가 원하는 기능이에요 ㅎㅎ
답변 감사합니다 ㅎㅎㅎㅎ

여기서 만약에 도치즈님께서 글쓰기 성공 이후에
바로 글 보여지는걸 원하시니
글쓰기 실행시 디비에 인써트 시키시고 해당디비를 las_insert_id 값으로 select 후에
쿼리결과값을 리턴해주면 ajax두번 안걸치고도 한방에 글내용까지 보여주실수있을껍니다...
바로 글 보여지는걸 원하시니
글쓰기 실행시 디비에 인써트 시키시고 해당디비를 las_insert_id 값으로 select 후에
쿼리결과값을 리턴해주면 ajax두번 안걸치고도 한방에 글내용까지 보여주실수있을껍니다...


이 내용을 보고 sql에 insert 시켰는데 insert시킨 내용을 불러오는게 햇갈리네요;;

loadData.php
<?
$sql = "SELECT * FROM DB명 where 필드명='".$text."';
$result = mysql_query($sql) or die(mysql_error());
$result_array = array();
while($row = mysql_fetch_object($result)){
$result_array[] = $row;
};
//결과값을 JSON형식으로 변환
$result_array = json_encode($result_array);
//변수 내용 출력
echo "{ \"group01\": ";
echo $result_array."\n";
echo "}";
?>
//
ajax 처리
$.ajax({
url: "loadData.php?opt=02", //옵션 예제
dataType: "json", // json 타입으로 가져오기
data: $("#폼아이디").serialize(), // 해당폼에 속한 모든 value 속성을 서버로 넘깁니다.
success: function (data) {
$.each(data.group01, function () {
alert(this.필드명);
});
this.필드명 -> DB의 필드명으로 내용을 가져 옵니다. this.로 쓰셔도 되고
data.group01[0].필드명 , data.group01[1].필드명 식으로 직접 호출도 가능합니다.
그룹 추가시
echo "{ \"group01\": ";
echo $result_array."\n";
echo "}";
그룹 추가시
echo "{ \"group01\": ";
echo $result_array."\n";
echo ",";
echo " \"group02\": ";
echo $result_array."\n";
echo "}";
이런 형태로 사용하세요.
<?
$sql = "SELECT * FROM DB명 where 필드명='".$text."';
$result = mysql_query($sql) or die(mysql_error());
$result_array = array();
while($row = mysql_fetch_object($result)){
$result_array[] = $row;
};
//결과값을 JSON형식으로 변환
$result_array = json_encode($result_array);
//변수 내용 출력
echo "{ \"group01\": ";
echo $result_array."\n";
echo "}";
?>
//
ajax 처리
$.ajax({
url: "loadData.php?opt=02", //옵션 예제
dataType: "json", // json 타입으로 가져오기
data: $("#폼아이디").serialize(), // 해당폼에 속한 모든 value 속성을 서버로 넘깁니다.
success: function (data) {
$.each(data.group01, function () {
alert(this.필드명);
});
this.필드명 -> DB의 필드명으로 내용을 가져 옵니다. this.로 쓰셔도 되고
data.group01[0].필드명 , data.group01[1].필드명 식으로 직접 호출도 가능합니다.
그룹 추가시
echo "{ \"group01\": ";
echo $result_array."\n";
echo "}";
그룹 추가시
echo "{ \"group01\": ";
echo $result_array."\n";
echo ",";
echo " \"group02\": ";
echo $result_array."\n";
echo "}";
이런 형태로 사용하세요.

아하~ 그렇게하는거군요!! ㅎㅎ
다마리님 답변과 비교해서 보니 이해가됩니다 ㅎㅎ
감사합니다^^
다마리님 답변과 비교해서 보니 이해가됩니다 ㅎㅎ
감사합니다^^