2013-04-28 867 views
7

Vì một số lý do tôi không thể nhận được dữ liệu đăng trong bộ điều khiển mã vạch. Tôi đã phá vỡ nó xuống một hình thức rất đơn giản để kiểm tra nó ra, vẫn không có may mắn. Nếu tôi sử dụng method = "get" nó hoạt động tốt. Dù sao, dưới đây là biểu mẫu, bộ điều khiển/chức năng và .htaccess của tôi. Bất kì sự trợ giúp nào đều được đánh giá cao. Ngoài ra, tôi thấy một số câu hỏi tương tự khác ở đây, nhưng không ai trong số họ dường như có câu trả lời phù hợp với tôi.Không thể nhận dữ liệu POST trong bộ điều khiển mã vạch

dạng:

<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> 

điều khiển/chức năng:

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:

<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> 

Trả lời

6

hành động nên trực tiếp đến chức năng điều khiển, nếu bạn cố gắng FormHelper cuộc sống của bạn sẽ được nhiều hơn dễ dàng hơn

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

Cố gắng tải các mô hình, trình trợ giúp, thư viện tại hàm dựng [__construct()] đó là một cách phù hợp.

khiển

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 
} 

Thông thường bạn nên bắt Giá trị văn trong mô hình

Mẫu

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

Xem

<?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();?> 

Addition

'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" 

Nếu bạn muốn tìm hiểu thêm, bạn có thể kiểm tra với bảng nội dung

Làm thế nào mọi thứ làm việc

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

infos thêm CI của http://ellislab.com/codeigniter/user-guide/toc.html

+0

Cảm ơn bạn đã trả lời, giải pháp đã kết thúc thực sự là tôi đã không viết lại mô-đun trên trong apache (điều lạ là nó dường như làm việc cho tất cả mọi thứ ngoại trừ gửi dữ liệu mặc dù). Dù sao, cảm ơn cho đề nghị, và tôi chắc chắn cần phải đọc thêm vào hướng dẫn sử dụng. – Mike

+0

vui mừng khi biết rằng bạn đã làm việc đó. :) –