2011-03-29 3 views
0

나는 내가 작성한 변경 사항을 최신 상태로 유지하기 위해 아래 코드를 편집했습니다. 나는 그것을 저장할 수 있었다 하지만 리디렉션이 완료되면 여전히 '성공'메시지를 표시 할 수 없습니다. 또한 오류가있는 경우 입력 한 데이터를 저장하려면 어떻게해야합니까?데이터가있는 경우 Form_validation이 실행되지 않습니다.

컨트롤러

class Addsale extends CI_Controller { 

function __construct(){ 
parent::__construct(); 
} 
function index() { 
    if(!$this->session->userdata('logged_in')) { 
     redirect('admin/home'); 
    } 
    // set data 
    $data['title'] = "Add Sale"; 
    $data['sales_pages'] = $this->sales_model->getSalesPages(); 
    $data['cms_pages'] = $this->navigation_model->getCMSPages(); 

    $this->load->library('form_validation'); 
    $this->form_validation->set_rules('name', 'Name', 'trim|required'); 
    $this->form_validation->set_rules('location', 'Location', 'trim|required'); 
    $this->form_validation->set_rules('bedrooms', 'Bedrooms', 'trim|is_natural|required'); 
    $this->form_validation->set_rules('bathrooms', 'Bathrooms', 'trim|required'); 
    $this->form_validation->set_rules('condition', 'Condition', 'trim|required'); 
    $this->form_validation->set_rules('description', 'Description', 'trim|required'); 
    $this->form_validation->set_rules('price', 'Price', 'trim|required'); 

    if($this->form_validation->run() === TRUE) { 

    $data = array( 
     'name' => $this->input->post('name', TRUE), 
     'location' => $this->input->post('location', TRUE), 
     'bedrooms' => $this->input->post('bedrooms', TRUE), 
     'bathrooms' => $this->input->post('bathrooms', TRUE), 
     'condition' => $this->input->post('condition', TRUE), 
     'description' => $this->input->post('description', TRUE), 
     'price' => $this->input->post('price', TRUE) 
     ); 

     $this->sales_model->addSale($data); 

     redirect('admin/addsale' , $data); 

     $this->session->set_flashdata('success', 'Page Saved'); 

    }else{ 
     $data['content'] = $this->load->view('admin/addsale', NULL, TRUE); 
     $this->load->view('template', $data); 
     } 

} 


    } 

보기

<?php 
//Setting form attributes 
$formAddSale = array('id' => 'addSale', 'name' => 'addSale'); 
$saleName = array('id' => 'name', 'name' => 'name'); 
$saleLocation = array('id' => 'location', 'name' => 'location'); 
$saleBedrooms = array('id' => 'bedrooms','name' => 'bedrooms'); 
$saleBathrooms = array('id' => 'bathrooms','name' => 'bathrooms'); 
$saleCondition = array('id' => 'condition','name' => 'condition'); 
$saleDescription = array('id' => 'description','name' => 'description'); 
$salePrice = array('id' => 'price','name' => 'price'); 
?> 

<section id = "validation"><?php print $this->session->flashdata('success');?> </section> 
<section id = "validation"><?php echo validation_errors();?></section> 

<?php 
echo form_open('admin/addsale/', $formAddSale); 
echo form_fieldset(); 
echo form_label('Name:', 'name'); 
echo form_input($saleName); 
echo form_label ('Location', 'location'); 
echo form_input($saleLocation); 
echo form_label ('Bedrooms', 'bedrooms'); 
echo form_input($saleBedrooms); 
echo form_label ('Bathrooms', 'bathrooms'); 
echo form_input($saleBathrooms); 
echo form_label ('Condition', 'condition'); 
echo form_input($saleCondition); 
echo form_label ('Price', 'price'); 
echo form_input($salePrice); 
echo form_label ('Description', 'description'); 
echo form_textarea($saleDescription); 
echo form_submit('submit','Submit'); 
echo form_fieldset_close(); 
echo form_close(); 
?> 

모델 당신은 DISP 할 set_message을 사용하고

function addSale($data) { 

$this->db->insert('sales', $data); 
return; 
} 

답변

0

나에게 보이는 "="이 줄에 :

if($this->form_validation->run() === TRUE) { 
+0

안녕하세요, 고맙습니다. 문제는 아니 었습니다. 배열 $ data를 전달하지 않았습니다. –

3

"완성 된"메시지를 놓으십시오. 그렇다면 바로 전에 리디렉션을하고 있기 때문에 표시되지 않습니다.

지금처럼 그냥 리디렉션하기 전에 flashdata에 메시지를 설정하십시오 :

$ this-> 세션 -> set_flashdata ('성공', '페이지 저장'); 다음

하고보기에서 인쇄 :

인쇄 $ this-> 세션 -> flashdata ('성공') 너무 많은 일이 같은

+0

감사합니다. 코드를 업데이트했지만 아직 수정되지 않은 문제가 있습니다. –

+0

오류가 발생합니까? – stef

관련 문제