2012-12-16 2 views
0

Kohana PHP 프레임 워크를 사용하여 웹 응용 프로그램을 개발 중이며 막혔습니다. 내 Controller에 View에서 PHP 변수를 사용하도록 설정했습니다. 뷰를 계속 새로 고치지 않고이 변수를 업데이트하고 싶습니다. 내가하고 싶은 것은이 PHP 변수에 커브의 데이터가 저장된 SQL 데이터베이스의 데이터를 사용하여 실시간으로 차트를 표시하는 것입니다. 어떻게해야합니까? 뷰에서이 변수를 직접 업데이트 할 수 있습니까 (모델의 my 함수 사용)?Kohana보기에서 페이지를 새로 고치지 않고 php 변수를 업데이트하려면 어떻게해야합니까?

+2

세션에 값을 저장하는 XHR을 보냅니다. 생각해 보면, 나는 HTML이 더 이상 "보기"가 아니라는 사실을 모르고 있다고 생각합니다. –

답변

1

페이지를 다시로드하지 않고도 Javascript로 AJAX 요청을 애플리케이션에 만들 수 있습니다. 무슨 일이 일어날 지 요청이 귀하의 컨트롤러/작업에 이루어지면 거기에 데이터베이스를 쿼리 할 수 ​​있으며 원하는대로 되돌릴 수 있습니다. AJAX 요청은 반환 된 데이터를 검색하고 그 데이터로 무언가를 수행 할 수 있습니다 (이 경우 일부 내용을 새 내용으로 바꿉니다).

페이지에이 자바 스크립트 코드를 포함해야합니다. (예에 따라

class Controller_Do extends Controller_Template 
{ 
    public function action_something() 
    { 
    $this->auto_render = false; 

    // make some call to your database, use your model whatever 
    echo 'some string or variable'; 
    return; 
    } 
} 

이보기는 HTML은 다음과 같이 될 것입니다 :이 같은 뭔가를 당신 Kohana 컨트롤러에서

$.ajax({ 
    url: /do/something /* URL of your controller/action */ 
    success: function(data) { /* the data variable will receive the new content from the controller/action */ 
    $('#the_id_of_your_html_tag').html(data); /* replace the html content with the new data */ 
    }, 
}); 

을이 예에서 나는 AJAX 요청을 위해 jQuery를 사용) :

<div id="the_id_of_your_html_tag">something</div> 
+0

빠른 응답을 보내 주셔서 감사합니다! 변수 만 반환 할 수 있습니까, 단? 왜냐하면 내가하고 싶은 것은 화면에 무엇인가를 쓰지 않고 큰 변수 인 변수에있는 데이터를 사용하여 몇 개의 커브로 차트를 렌더링하기 때문입니다. 대신 "echo '일부 문자열 또는 변수';" "return $ variable;"을 사용할 수 있습니까? 컨트롤러에서, 그리고 Ajax 성공 부분에서 "curves = ;" 그래서 jquery (jqplot)로 차트를 렌더링 할 수 있습니까? – zmesi

+0

좋아하는 배열, json 객체를 반환 할 수 있습니다. 귀하의 경우에는 컨트롤러에서 "return json_encode ($ variable);" 그래서 자바 스크립트의 성공 부분에서 json 객체를 직접 사용하고 jquery jqplot으로 차트를 렌더링 할 수 있습니다. – Daan

+0

고마워, Daan! 그 동안 나는 그것을 이해했다! :) 나를 위해 일한 것은 : echo json_encode ($ variable); 반환; – zmesi

관련 문제