【问题标题】:$this->input->post() is empty while $_POST is set in Codeigniter$this->input->post() 为空,而 $_POST 在 Codeigniter 中设置
【发布时间】:2014-01-13 08:08:08
【问题描述】:

我在 codeigniter 中遇到问题,我尝试以这种形式通过 post 获取表单数据:

    <form action="http://localhost/Bookstore/index.php/cart/add/1" method="post">
        <input id="url" name="url" type="text" value="http://localhost/Bookstore/index.php/book/id/1" class="hidden">
        <button class="btn btn-primary" type="submit">
            <i class="fa fa-shopping-cart"></i> In den Warenkorb
        </button>
    </form>

但是,当我尝试访问 $this-&gt;input-&gt;post('url') 时,$this-&gt;input-&gt;post() 不包含任何内容,而 $_POST 包含我需要的数据 (url)。

任何想法如何解决这个问题?我想避免使用 $_POST,因为在 codeigniter 中不建议阅读它。

【问题讨论】:

  • 您可以检查表单助手是否已初始化。
  • 感谢您的建议。我已经尝试过了,但没有帮助。
  • 我认为这与button 具有提交类型有关,请尝试使用input 元素而不是button 类型并检查。
  • 如何通过输入元素提交数据? url 数据已保存在输入字段中。

标签: forms codeigniter post


【解决方案1】:

尝试在 CI 的 config.php 文件中更改此设置

 $config['uri_protocol'] = "REQUEST_URI";  

并改变

$config['index_page'] = 'index.php';

在你的 config.php 中

$config['index_page'] = '';

【讨论】:

  • 谢谢,但这也不起作用。有趣的是,有些形式有效,有些则无效。但无论如何,真的谢谢!
  • 您使用的是最新的 CI 版本吗?如果不是最新版本,请检查。对我来说它正在工作。
  • 是的,我愿意。有点奇怪。我想我不顾一切地尝试从头开始重新实现视图/控制器,看看这是否可行。但那是我最后一次尝试,因为我已经实现了其他视图/控制器,它们通过 post 提交数据,一切都很好。无论如何,谢谢你的帮助。
【解决方案2】:

尽量准确

action="/Bookstore/index.php/cart/add/1"

它应该可以工作。

出于某种原因,我认为 .htaccess + CI 控制器配置你需要准确地放置那个 url

【讨论】:

    猜你喜欢
    • 2012-09-04
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 2017-04-11
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多