【问题标题】:Codeigniter POST Form Submit ProblemsCodeigniter POST 表单提交问题
【发布时间】:2013-08-24 00:09:33
【问题描述】:

我刚开始学习 CI 和 PHP,想制作一个简单的 CRUD 应用程序。

我创建了一个添加记录的函数,但是当我在表单中提交数据时,Chrome 会下载一个没有扩展名的文件。

控制器

<?php

class Options extends CI_Controller{

function index()
{
    $this->load->view('options_view');

}

function create()
{
    $data = array(

        'name' => $this->input->post('name'),
        'price' => $this->input->post('price'));

    $this->data_model->addItem($data);
    $this->index();
}

}

型号

<?php

class Data_model extends CI_Model {
function getAll() {
$q = $this->db->query("SELECT * FROM items");
if($q->num_rows() >0){
    foreach($q->result() as $row){
        $data[]=$row;
    }
}
return $data;
}

function addItem($data){
    $this->db->insert('items', $data);
    return;
}
}
?>

查看

<html><head></head><body>
<style type="text/css">
label {display: block;}
</style>


<h2>Create</h2>
<?php echo form_open('options/create'); ?>

<p>
    <label for="name">Name</label><input type="text" name="name" id="name" />
</p>
<p>
    <label for="name">Price</label><input type="text" name="price" id="price" />
</p>

<p><input type="submit" value="Submit" /></p>

<?php echo form_close(); ?>

</body>
</html>

我做错了什么吗? 没有错误弹出。表单已创建,但是当我在文本框中添加数据并单击提交时,浏览器会下载一个“创建”文件。

【问题讨论】:

  • 值是否插入数据库?
  • 该值没有插入到数据库中。

标签: php forms codeigniter submit


【解决方案1】:

难道你不需要那行的最后一个斜线吗?

<?php echo form_open('options/create/'); ?>

【讨论】:

  • 我编辑了那个,但问题仍然存在。感谢您的关注。
  • 在浏览器中检查生成的 HTML 源代码 -
    在那里吗?另一件事 - 你检查 $this->input->post,但从视图中 - 表单真的是用 method="post" 创建的吗?
  • 表单生成如下:
    localhost/CI/index.php/options/create" method="post" accept-charset="utf-8">
  • 是吗?在确实需要选项/创建”之后?这可能是麻烦的原因吗?我认为也不需要接受字符集。一个想法 - 尝试加载普通
    而不是 form_open () 看看会发生什么。
  • 谢谢先生。我手动添加了表单,现在它可以工作了。所以 CI 表单助手有点问题?
【解决方案2】:

我认为你需要像这样加载表单助手

$this->load->helper(array('form', 'url'));

如果您遇到任何问题,请告诉我。

【讨论】:

  • 我没有在其中加载表单和 url 帮助程序,因为我将它们添加到 autoload.php。 $autoload['helper'] = array('url','form');
【解决方案3】:

$this-&gt;data_model-&gt;addItem($data);之前的方法中添加$this-&gt;load-&gt;model('data_model');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    相关资源
    最近更新 更多