2011-03-29 25 views
0

以下のコードを編集して、私が行った変更を最新の状態に保ちました。私はそれを節約することができましたBUTリダイレクトが完了したときに表示するメッセージは「成功」になりません。またが正しくない場合エラー入力したデータを保存するにはどうすればよいですか?データの場合は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(); 
?> 

モデル

function addSale($data) { 

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

答えて

0

あまりにも多くの1があるように私には見えます「=」この行で:

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

ねえ、おかげで問題はなかった=私は配列$ dataを渡さなかった –

3

あなたはDISPするset_messageを使用しています「完成した」メッセージを表示しますか?そうであれば、直前にリダイレクトを行っているので表示されません。

はそうのように、単にリダイレクトする前にflashdataにメッセージを設定してみてください:

の$ this - >セッション - > set_flashdata( '成功'、 'ページ保存');

、その後、あなたのビューでそれをプリントアウト:

印刷の$ this - >セッション - > flashdata( '成功')

+0

おかげで、私は自分のコードを更新した、問題はまだあなたがすべてのエラーを得るか、今何が起こる –

+0

を固定されていませんか? – stef

関連する問題