【问题标题】:PHP Post Form Accepting Only One Character -- PHP CodeIgniter MVCPHP Post 表单只接受一个字符 -- PHP CodeIgniter MVC
【发布时间】:2014-07-03 15:02:23
【问题描述】:

我希望我的代码能得到另一番关注,因为我无法弄清楚为什么我的帖子数据只接受输入字段的第一个字符。

这是我的看法:

<form id="SearchTerm" accept-charset="utf-8" method="post" action="<?php echo site_url("record/search/"); ?>">
    <input name="SearchTerm" type="text"> | <input type="submit">
  </form>

还有我的控制器:

public function search($SearchTerm = 0)
{   
    // Set Session Varaible
    $CompanyId = $this->session->userdata('CompanyId');     

    $p_data = $this->input->post('SearchTerm');
    if($p_data) {
        $SearchTerm = $p_data['SearchTerm'];
    } else {
        $SearchTerm = '0';
    }

    var_dump($SearchTerm);

当我转储 $SearchTerm 时,只有输入字段的第一个字符被捕获。 各位程序员有什么建议吗?

提前谢谢你!

【问题讨论】:

  • $SearchTerm = $p_data['SearchTerm'];应该是 $SearchTerm = $p_data;

标签: php forms codeigniter


【解决方案1】:

$p_data = $this-&gt;input-&gt;post('SearchTerm'); 获取$_POST['SearchTerm'] 的值。所以调用$SearchTerm = $p_data['SearchTerm']; 是不必要的,这可能是导致您的问题的原因。

$p_data = $this->input->post('SearchTerm');
if(!$p_data) {
    $SearchTerm = '0';
}

但最后一个 if 语句也可能是不必要的,因为如果 $_POST['SearchTerm'] 为空,$this-&gt;input-&gt;post('SearchTerm') 将返回 false。

【讨论】:

  • 我以为 $p_data = $this->input->post('SearchTerm');返回一个布尔值,因此,我用它来检查表单是否首先提交。我对此有误吗?
  • 这将返回该 POST 变量的值,如果不存在则返回 false。有关更多信息,请参阅the docs
  • 感谢大家的帮助!效果很好!希望我能更加关注该文档。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-19
  • 2015-04-21
  • 1970-01-01
  • 2014-09-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多