개발 Q&A

제목 ajax 연동 부분관련인데..
글쓴이 수야디벨 작성시각 2012/12/07 13:43:41
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 22803   RSS

view의 내용은 아래와 같거든요~!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ajax_기초테스트</title>
<!--<script type="text/javascript" src="../../js/ajax.js"></script>-->
<script>
 var xmlHttp;
  function modal(str){
   
   // 1. 브라우저에 따른 XMLHttpRequest생성하기.
   xmlHttp = createXMLHTTPObject();
   
   // 2. 요청에 대한 응답처리 이벤트 리스너 등록.
   xmlHttp.onreadystatechange=on_ReadyStateChange;
   
   // 3.서버로 보낼 데이터 생성.
   // 3.데이터 생성.
   var data = "data1="+str+"&data2=samp2le";
   
   // 4. POST 방식으로 데이터 보내기, 응답은 비동기로 클라이언트<->서버간의 연결 요청준비.
   xmlHttp.open("POST", "
http://localhost/ajax/index.php/ajax_controller/ajax", true);
   xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
   
   // 5. 실제 데이터 전송.
   xmlHttp.send(data);
   
   // T. 동기/비동기 실행 테스트를 위한 부분.
   alert("전송 시작!");
  }
  
  // 1. 브라우저에 따른 XMLHttpRequest생성하기.
  function createXMLHTTPObject(){
   var xhr = null;
   if (window.XMLHttpRequest) {
    // IE7버전 이상, Chrome, Safari, Firefox, opera등 거의 대부분의 브라우저에서는
    // XMLHttpRequest객체를 제공합니다.
    xhr = new XMLHttpRequest();
   }
   else {
    // IE6,IE5 버전에서는 아래와 같이 XMLHttpRequest객체를 생성해야 합니다.
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
   }
    
   return xhr;
  }
  
  // 6.응답처리.
  function on_ReadyStateChange(){
   // 4=데이터 전송 완료.(0=초기화전,1=로딩중,2=로딩됨,3=대화상태)
   if(xmlHttp.readyState==4){
    //200은 에러 없음.(404=페이지가 존재하지 않음)
    if(xmlHttp.status==200){
     // 서버에서 받은 값.
     alert("서버에서 받은 원본 데이터 : "+xmlHttp.responseText);
     
     //8. 데이터 파싱처리.
     parseData(xmlHttp.responseText);
    }
    else{
     alert("처리 중 에러가 발생했습니다.");
    }
   }
  }
  
  //7. CSV포맷  데이터 처리.
  function parseData(strText){
   alert('div'+strText);
   /*
   var aryData = strText.split("|");
   var objResult = {};
   for(var i=0;i<aryData.length;i++){
    var keyValue  = aryData[i].split("=");
    
    objResult[keyValue[0]]=keyValue[1];
   }
   
   alert("파싱한 데이터 : "+objResult);
   // chrome, safari에서는 console.log로 테스트 하세요.
   // console.log("파싱한 데이터 : ",objResult);
   */
  }
</script>
</head>

<body>
<? $str = "kisu2"; ?>
<input type="button" name="button" value="버튼" onclick="modal('<?=$str?>')" />
</body>
</html>


저 빨간 부분이 ajax 부분입니다.


이를 db에 응용하여 ..

<?
 class Ajax_model extends CI_Model
 {
  function getAll(){
   
   $q = $this->db->get('member_info');
   
   $query = $q->result();
   
   
   $station = array();
   foreach($query as $r):
   $station = $r->userid;
   endforeach;
   
   echo ($station);
  }
  
 }
?>

요렇게 하면, $r->userid 가 ajax 코드에 의해서 뽑히는데,

문제는 $r->userid가 하나가 아닐경우에 ,

마지막껏만출력이 된다는 단점이 있네요.


ajax로 모든 배열을 다 받을 수 있는 방법이 없을까요~?

 다음글 view파일에서의 include를 질문드립니다. (5)
 이전글 웹이랑 인터넷전화기랑 연동하는 방법 (3)

댓글

한대승(불의회상) / 2012/12/07 14:06:06 / 추천 0
json_encode()를 사용하세요.
변종원(웅파) / 2012/12/07 14:10:38 / 추천 0
이동합니다.
수야디벨 / 2012/12/07 14:58:28 / 추천 0

불의회상//

급하게 json_encode 찾아서 , 해결했습니다

감사합니다 ㅎ