2013-10-06 42 views
0

我正在CI中構建一個基本網站。我已經構造使用表單助手一種形式,我做這些方針的東西:CodeIgniter表單助手/發佈數據問題

視圖(從create_form.php):

<?php $this->load->helper('form'); ?> 
<?php echo form_open('site/create_article'); ?> 
<?php echo form_label('Title:', 'title'); ?><br /> 
<?php echo form_input('title'); ?><br /><br /> 
<?php echo form_label('Body:', 'text'); ?><br /> 
<?php echo form_textarea('text'); ?><br /><br /> 
<?php echo form_submit('submit', 'Post Article'); ?> 

控制器(從site.php):

function create_article() 
{ 
    $this->load->model('site_model'); 
    $this->load->helper('form'); 

    $post_check = $this->input->post('submit'); 

    if ($post_check === TRUE) 
    { 
     $this->site_model->create_article($post_check); 
     $this->load->view('created'); 
    } 
    else 
    { 
     $this->load->view('create_form'); 
    } 
} 

型號:

function create_article($post_check) 
{ 
    $this->load->helper('date'); 

    $data = array(
        'title' => $post_check['title'], 
        'text' => $post_check['text'], 
        'created' => now() 
       ); 

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

當我提交表單,它只是重新加載「create_article.php」(其中包含表格)而不是確認頁面「created.php」。據推測$ post_check沒有獲得任何數據傳遞給它,但我不知道爲什麼刷新頁面後提交觸發POST數據通知 - 一定會越來越多!歡迎任何建議。

+0

當然,在離開家兩三個小時就點擊的三重等號操作可能是問題。 – TKC

回答

0
form_submit('submit', 'Post Article'); 
// Would produce: 

<input type="submit" name="submit" value="Post Article" /> 


$post_check = $this->input->post('submit'); 


if ($post_check == 'Post Article') 
    { 
    $this->site_model->create_article($post_check); 
    $this->load->view('created'); 
    } 
    else 
    { 
    $this->load->view('create_form'); 
    } 
+0

這個答案似乎更全面,但另一個也適用。多謝你們。 – TKC

0
$post_check = $this->input->post('submit'); // THIS return array() 

$post_check === TRUE; // THIS IS INVALID !!! array() !== TRUE !! 

// You should do 

if (count($post_check)){ } 
+0

是的,這就是我的想法。菜鳥錯誤。我會回家測試。 – TKC