저는 CodeIgniter 프로젝트에서 작업 중이며 ajax를 사용하여 컨트롤러에서 데이터를 반환 할 때 문제가 발생합니다.CodeIgniter Ajax 응답에 데이터가 포함되어 있지만 출력이 정의되지 않았습니다.
컨트롤러 :
function outputAjax()
{
$this->load->model('my_model');
$data['results'] = $this->site_model->getInfo();
$this->output->set_output(json_encode($data));
}
모델 :
function getInfo()
{
$this->db->order_by('PubDate','DESC');
$query = $this->db->get('Articles', 50);
return $query->result();
}
보기 아약스 기능 :
<div id="article-area">
<p>Hey this is where the ajax call should output!</p>
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript" language="Javascript">
jQuery(document).ready(function(){
$.ajax({
url: 'http://localhost/project/index.php/my_controller/outputAjax',
dataType:'json',
success: function(data) {
$.each(data, function(index,item){
$("#article-area").append('<div><b>' + item.id + '</b></div><hr />');
});
}
});
});
내가 ou는 수 tput 데이터를 PHP foreach 루프를 사용하여 벌금하지만 지금은 아약스를 사용하여 변환하려고합니다. 내가 맞으면 출력되는 데이터는 인 배열입니다. 각 '객체'에는 ID, 제목, URL, PubDate, 소스 등 과 같은 6 개의 필드가 포함됩니다.
아약스를 사용하는 데있어 새로운 것이지만 Chrome을 사용하여 '네트워크'검사를 사용하면 문제를 디버그 할 때 Ajax 호출과 응답 탭이 표시됩니다. 필요한 모든 데이터가 있습니다. 데이터가 응답에 표시됩니다 아무것도 중 하나가 페이지에 표시되지 않습니다
{"results":[{"id":"1","Source":"My Source","Title":"My Title". . . .
때문에 또는 내가 아약스 호출을 변경하는 경우 I 출력 undefined로 그것을 얻을 수 있습니다 이런 식으로 여기에 표시된.
달성하고자하는 최종 결과는 아약스 호출의 데이터가있는 페이지에서 약 10 분의 1 div 정도입니다. 어느 쪽이 내 옆의 질문도 불러옵니다.
내 모델은 DB로부터 50 행의 데이터를 반환합니다. 나는 현재 json 형식으로 모든 것을 ajax 함수에 전달하고있다. 그 데이터의 처음 10 행만을 사용하고 그 페이지에서 결정된 시간 동안 나머지 행을 사용합니다. Ajax 호출에 50 행을 모두 계속 출력 한 다음 필요에 따라 사용하거나 모델에서 처음 사용할 데이터로만 데이터를 제한하는 것이 가장 좋습니다.
CI로 몇 개의 ajax 튜토리얼을 실행했지만 모두 POST를 사용하고 있으며 아직 document.ready와 사용자 상호 작용없이 실행중인 것을 찾으려고합니다. 나는 또한 데이터를 출력하는 몇 가지 다양한 방법이 있어야한다는 것을 알았다. 이런 식으로 사용 된 .append() .after() 및 .value()의 사용법을 보았지만 어떤 경우에도 문제가 해결되지 않는 것 같습니다 ...
감사합니다.
감사를주지 않고 배열을 보내! 내가 가지고있는 문제가 해결되었습니다. 제 질문의 후반부에 어떤 의견이 있습니까? 또한, 두 가지 방법 모두 올바르게 작동하기 때문에 배열 대신 객체를 반환하려는 이유가 무엇입니까?나는 내가 어디에 있는지 알기 위해 몇 가지 다른 자습서를 따랐다. 왜 내가 원래 그 물건에 넣기로 결정했는지 확신 할 수 없다. 다시 한 번 감사드립니다! – Twhyler
제한 행 문제는 다소 주관적입니다. 한 번에 모두 보내면 변수에받은 데이터를 캐싱하거나 더 많은 행을 새로 요청할 수 있습니다. 늘어나는만큼 서버 load..first 더 .. 코딩까지 간다 ... 당신을 위해 더 쉽게 할 – charlietfl
모든 도움과 의견을 주셔서 다시 한번 감사드립니다! – Twhyler