2013-04-28 10 views
7

Z jakiegoś powodu nie mogę opublikować danych w kontrolerze kodów. Zepsułem to do bardzo prostej formy, aby przetestować to, wciąż bez powodzenia. Jeśli użyję metody = "get", działa dobrze. W każdym razie poniżej znajduje się formularz, kontroler/funkcja i mój .htaccess. Każda pomoc byłaby bardzo cenna. Ponadto widziałem tutaj kilka innych podobnych pytań, ale żaden z nich nie wydawał się mieć odpowiedzi, która zadziałałaby dla mnie.Nie mogę uzyskać danych POST w kontrolerze kodu kodu

forma:

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

kontroler/funkcja:

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> 

Odpowiedz

6

działania należy kierować do funkcji regulatora, jeśli spróbujesz FormHelper twoje życie będzie znacznie łatwiej

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

Spróbuj załadować modele, pomocników, biblioteki na funkcję konstruktora [__construct()], to jest dobry, właściwy sposób.

Controller

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 
} 

Normalnie należy złapać Wysłany wartość w modelu

model

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

View

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

Dodawanie

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

Jeśli chcesz wiedzieć więcej, można sprawdzić przy stole CI treści

jak to wszystko działa

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

więcej infos http://ellislab.com/codeigniter/user-guide/toc.html

+0

Dzięki za odpowiedź, rozwiązanie zakończyło się tak naprawdę, że nie miałem modułu przepiszania w Apache (dziwne jest to, że wydawało się, że działa na wszystko oprócz wysyłania danych). W każdym razie, dziękuję za sugestię i zdecydowanie muszę przeczytać więcej w przewodniku użytkownika. – Mike

+0

Cieszę się, że to działa. :) –

Powiązane problemy