2013-04-28 34 views
7

Bazı nedenlerle bir kod denetleyici denetleyicisine veri gönderemiyorum. Bunu test etmek için çok basit bir forma indirdim, hala şans yok. Method = "get" kullanırsam iyi çalışır. Her neyse, aşağıda biçim, denetleyici/işlev ve benim .htaccess. Herhangi bir yardım çok takdir edilecektir. Ayrıca, burada birkaç tane benzer soru gördüm, ama hiçbiri benim için işe yarayan bir cevaba sahip değildi.Codeigniter denetleyicisinde POST verileri alınamadı

formu:

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

kontrolör/fonksiyon:

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: hayatınızı kadar olacak FormHelper Denersen

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

cevap

6

aksiyon, kontrolör fonksiyonuna yönlendirmelidir daha kolay

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

Modeller, yardımcılar, kütüphaneler kurmaya çalışın [__construct() işlevi] iyi bir yoldur.

Kontrolör Normalde

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 
} 

modeldeki

Modeli

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

Görünüm Yayınlanan Değerini yakalamak gerekir

Toplama

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

Eğer işler

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

daha çok bilgi nasıl çalışır içerikleri

arasında CI tabloyla kontrol edebilirsiniz daha fazla bilgi edinmek istiyorsanız

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

Cevabınız için teşekkürler, çözüm apache'de yeniden yazım modülüne sahip olmamamla sonuçlandı (garip olan şey veri gönderme dışında her şey için çalışıyor gibi görünüyordu). Her neyse, öneri için teşekkürler ve kesinlikle kullanıcı kılavuzuna daha fazla okumaya ihtiyacım var. – Mike

+0

Çalıştığını bildiğiniz için çok memnun oldum. :) –