2013-04-28 2 views
7

몇 가지 이유로 나는 codeigniter 컨트롤러에 데이터를 게시 할 수없는 것 같습니다. 나는 그것을 테스트하기 위해 아주 간단한 형태로 부수었지만 여전히 운이 없다. method = "get"을 사용하면 잘 작동합니다. 어쨌든, 아래 양식, 컨트롤러/함수 및 내 .htaccess입니다. 어떤 도움이라도 대단히 감사 할 것입니다. 또한 여기에 비슷한 질문이 몇 개 있었지만 그 중 누구도 저에게 도움이되는 답을 얻지 못했습니다.codeigniter 컨트롤러에서 POST 데이터 가져 오기

형태 :

<form id="bundleOrderInfo" name="bundleOrderInfo" action="<?php echo(base_url()); ?>catalog/bundleSubmit" method="post"> 

<input type="text" name ="test" id="test" value="blahblah"></input> 
<input type="submit"></input> 
</form> 

컨트롤러/기능 :

public function bundleSubmit() 
{ 
    $this->output->enable_profiler(); 
    $this->load->model('catalog_model'); 

    $data['availableCategories']=$this->catalog_model->getCategories(); 
    $data['availableItems'] = $this->catalog_model->getByCategory($data['availableCategories']); 
    $testing = $this->catalog_model->formData(); 

    $this->load->view('templates/header'); 
    $this->load->view('templates/menu',$data); 

    print_r($_POST); 
} 

htaccess로 : 당신의 인생이 많이 될 것입니다 FormHelper 당신이하려고하면

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    RewriteCond %{REQUEST_URI} ^system.* 
    RewriteRule ^(.*)$ /ITPortal/index.php?/$1 [L] 

    RewriteCond %{REQUEST_URI} ^application.* 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ ITPortal/index.php?/$1 [L] 
</IfModule> 

<IfModule !mod_rewrite.c> 
    ErrorDocument 404 /ITPortal/index.php 
</IfModule> 

답변

6

동작은, 컨트롤러 기능에 직접한다 쉽게

http://ellislab.com/codeigniter/user-guide/helpers/form_helper.html

모델, 도우미, 라이브러리를 생성자 [__construct() 함수]에서로드하는 것이 좋습니다.

컨트롤러 일반적으로

function __construct() 
{ 
    parent:: __construct(); 
    $this->load->helper('form'); //loading form helper 
    $this->load->model('catalog_model'); //loading your model 
} 

function bundleSubmit() 
{ 
    $this->catalogmodel->insertFromForm(); //calling your method from model 
} 

당신이 모델에서

모델

function insertFromForm() 
    { 
    $name= $this->input->post('name'); 
    print_r($name); 
    die(); // stop the process here 
    } 

보기를 게시 값을 잡을해야

추가

'catalog/BundleSubmit' in form mean means your form posted values will goes to to 'controller/function()' and controller will redirect to a method in model 'model/insertDataFromForm" 

당신은 당신이 일을

http://ellislab.com/codeigniter/user-guide/overview/appflow.html

더 많은 정보를 정기적으로 작업하는 방법 내용

의 CI의 테이블을 확인하실 수 있습니다 더 알고 싶다면 16,

<?php echo form_open('catalog/bundleSubmit','id="bundleOrderInfo" name="bundleOrderInfo"') ;?> 
//you can also do this , this should be enough 
//<?php echo form_open('catalog/bundleSubmit')?> 

<input type="text" name ="test" id="test" value="blahblah"></input> 
<input type="submit" value="Submit"></input> 

<?php echo form_close();?> 

http://ellislab.com/codeigniter/user-guide/toc.html

+0

답장을 보내 주셔서 감사합니다, 솔루션은 실제로 내가 아파치에서 모듈을 다시 작성하지 못했습니다 (이상한 것은 그것을 게시하는 것을 제외하고 모든 것을 위해 작동하는 것 같아요). 어쨌든 제안을 주셔서 감사합니다. 사용자 가이드를 자세히 읽어야합니다. – Mike

+0

당신이 일하는 것을 알게되어 기쁘다. :) –

관련 문제