2012-06-13 4 views
1

컨트롤러가 데이터베이스 모델에서 데이터를 가져 와서 보냅니다. 보기에서 각 엔티티에 div를 그리는 foreach 루프를 수행합니다. 모든 div에는 엔티티를 평가하는 양식 요소가 있습니다.CodeIgniter - 양식 제출 후 div 새로 고침

컨트롤러 :

function index(){ 
    $data['main_content'] = 'list'; 
    $data['entities'] = $this->database_model->getEntities(); 
    $this->load->view('template', $data); 
} 

function postRate(){ 
    $rate = array(
     'entity_id' => $this->input->post('entity_id'), 
     'owner_id' => $this->input->post('owner_id'), 
     'value' => $this->input->post('value') 
    ); 
    $this->database_model->persistRate($rate); 
    $this->index(); 
} 

모델 :

function getEntities(){ 
    return $this->db->get('entity')->result(); 
} 

function persistRate($rate){ 
    return $this->db->insert('rate', $rate); 
} 

보기 : 평가 한 후이 경우

<?php foreach($entities as $entity) : ?> 
    <div class="entity"> 
     <?php echo form_open('entities/postRate/', $attr); ?> 
     <?php echo form_hidden('entity_id', $entity->id); ?> 
     <?php echo form_hidden('owner_id', $userid); ?> 
     <?php echo form_hidden('value', 1); ?> 
     <?php echo form_submit('submit', '+1'); ?> 
     <?php echo form_close(); ?> 
    </div> 
<?php endforeach; ?> 

, 전체 페이지를 다시로드됩니다하지만 난 해당 사업부를 새로 고칠 양식이 제출 된 곳. 나는 자바 스크립트 또는 jQuery가 그것을 할 수 있다는 것을 안다. .. 업데이트 .. 그러나 나는 그들의 논리를 모른다. 어떻게 실제 div의 정확한 div (정확한) 데이터를 알 수 있을까? 데이터베이스에서 가져올까요? 나는 js/jquery/ajax와 혼동을 느낀다.

+1

AJAX를 살펴보십시오. CodeIgniter를 사용하든 사용하지 않든 상관 없습니다. 실제로는 상관 없습니다. – Styxxy

+0

여기 로직은보기에 제출 한 후 컨트롤러 호출 모델과 반환 후 인덱스를 다시 호출하여 페이지를 다시로드하고 다시로드합니다. 권리? 나는 그것을 본다, 그러나 ajax를 가진 논리는 무엇인가? 나는 보지 못하거나 모르겠다. – Victor

답변

1

정말 간단하고 여기에서 찾을 수 있습니다 : 여기

http://api.jquery.com/jQuery.ajax/은 예입니다

$.ajax({ 
    url: "http://localhost/your_site/controller/method/", 
    type: "POST", 
    data: {id : 123}, 
    dataType: "html", 
    success: function(data) { 
    $('.result').html(data); 
    } 
}); 

<div class="result"> 
//YOUR AJAX RESULT WILL BE HERE 
</div> 

컨트롤러 방법은 id라는 포스트 변수를 받아야합니다.

기본 예입니다. 링크를 읽고 그것에 대해 자세히 알아야합니다. ;)

+0

고마워, 내가 확인해. – Victor

+0

자, 이제 http : // localhost/my_site/controller/method로 POST를 보낼 수 있습니다. PHP가 어떻게 $ .ajax에 응답을 보낼 수 있습니까? 반환 실체; 방법의 끝에서 작동하지 않습니다. 성공시 : function (data) {alert (data)}는 절대 비어 있습니다. – Victor

+0

나는 반환 실체를 바꿨다. ~ print_r (엔티티); 그것은 작동하는 것 같습니다. 가능할 수 있니? – Victor

관련 문제