[英]Cant get POST data in codeigniter controller
For some reason I cant seem to get to post data in a codeigniter controller. 出于某种原因,我似乎无法在codeigniter控制器中发布数据。 I broke it down to a very simple form to test it out, still no luck.
我把它分解成一个非常简单的形式来测试它,但仍然没有运气。 If I use method="get" it works fine.
如果我使用method =“get”它可以正常工作。 Anyways, below is the form, the controller/function, and my .htaccess.
无论如何,下面是表单,控制器/功能和我的.htaccess。 Any help would be much appreciated.
任何帮助将非常感激。 Also, I saw a few other similar questions on here, but none of them seemed to have an answer that worked for me.
此外,我在这里看到了一些其他类似的问题,但他们似乎都没有一个对我有用的答案。
form: 形成:
<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>
controller/function: 控制器/功能:
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: 的.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>
action should direct to controller function, if you try FormHelper your life will be much easier 动作应该直接指向控制器功能,如果你尝试FormHelper,你的生活会更容易
https://www.codeigniter.com/user_guide/helpers/form_helper.html https://www.codeigniter.com/user_guide/helpers/form_helper.html
Try to load models,helpers, libraries at constructor [ __construct() function] it is a good proper way. 尝试在构造函数[__construct()函数]中加载模型,帮助器,库这是一个很好的正确方法。
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
}
Normally you should catch Posted Value in model 通常你应该在模型中捕获已发布的值
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();?>
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"
If you want to know more you can check with CI's table of contents 如果您想了解更多信息,可以查看CI的目录
How things work 如何工作
https://www.codeigniter.com/user_guide/overview/appflow.html https://www.codeigniter.com/user_guide/overview/appflow.html
more info:- https://www.codeigniter.com/user_guide/ 更多信息: - https://www.codeigniter.com/user_guide/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.