2012-08-31 55 views
0

這個我確定是一個簡單的忽略,但它在短時間內給了我很頭疼的問題。無法在codeigniter中發佈簡單的表單日期

我試着從這個觀點發布的數據:

<?php 
if (!$this->tank_auth->is_logged_in()) 
    { 
     echo "<a href='index.php/auth/login'>Login</a>"; 
    } else { ?> 
<form method="POST" action="create_community"> 
    <label>Community Name: </label><input type="text" name="communityname" value="231"/><br> 
    <label>Description: </label><br><textarea name="communitydesc"></textarea><br> 
    <label>Image Location(URL): </label><input type="text" name="imageloc"/><br> 
    <input type="radio" name="privacy" value="public" /> public<br /> 
    <input type="radio" name="privacy" value="private" /> private<br /> 
    <input type="radio" name="privacy" value="business" /> business<br /> 
    <input type='submit'/> 
</form>   
<?php } 
?> 

創建控制器如下:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Create extends CI_Controller { 

    function __construct() 
    { 
     parent::__construct(); 

     $this->load->library('tank_auth'); 
     $this->load->library('encrypt'); 
     $this->load->library('session'); 

     $this->load->model('topbar_model'); 
     $this->load->model('left_model'); 
     $this->load->model('right_model'); 
     /* 
     $this->load->model('right_model'); 
     $this->load->model('left_model'); 
     $this->load->model('topic_model'); 
     */ 
     $this->load->helper('url'); 
     $this->load->helper('form_helper'); 
     $this->load->helper('form'); 

     $this->load->helper(array('form', 'url')); 
    $this->load->library('form_validation'); 
     $this->load->library('security'); 
     $this->load->library('tank_auth'); 
     $this->lang->load('tank_auth'); 
    } 

    public function index() 
    { 
      $this->load->view('create_community'); 
    } 

    public function create_community() 
     { 
      $this->load->view('templates/head'); 
      echo "testing"; 
      print_r($this->input->post()); 
     } 

} 

create_community顯示 「測試」,但不顯示職位。我嘗試過發佈個人輸入內容,並且什麼也沒得到。

任何想法?

+0

剛剛看到了一些東西:我的視圖和函數名字一樣...沒有做任何事情 –

+0

你可以嘗試在'index.php'中添加'error_reporting(E_ALL)'並查看是否有錯誤? – Touki

+0

嘗試'print_r($ this-> input-> get_post());'檢查瀏覽器是否服從表單的method =「POST」'。另外,使用Firebug或Chrome開發者控制檯,檢查網絡標籤以查看瀏覽器是否確實發送了發佈數據。你也可以嘗試'print_r($ _ POST);'和'print_r($ _ REQUEST);'來檢查表單數據是否到達PHP端。 –

回答

1

的認爲這 - $>輸入 - > get_post()是一個方法調用,而不是一個類變量,所以你不能處理,就像您$ _ POST []。

如果您想使用POST遵循傳統表單處理,請使用標準的$ _POST [] assoc。數組,但請注意,可能會包含一個CSRF字段,並且您需要處理。

此外,我不知道你是如何路由的,但是你的表單動作不應該是'create/create_community',除非你在這時爲所有的呼叫路由過去'創建'。

+0

謝謝我會考慮這一點。由於它只是一個創建頁面(這不會在我的實際網站),我實際上在表單動作中有完整的URL。我只是編輯了這篇文章。 –

+0

哦,哇!謝謝。你提醒我你不能把http://放到表單動作中。當然,這個問題將是我編輯出來的一件事!對不起大家。謝謝您的幫助! –

0
public function create_community() 
{ 
     var_dump($this->input->post()); 
} 
+0

返回空白文檔...好吧,返回'head'視圖。 –

+0

......這就是你的功能呢 - 你還有什麼期望? – Laurence

+0

用於發佈數據以便訪問?所以我可以使用它... –