CI form_validation->run()总是返回false,求助
代码几乎是按照中文手册实现的. 先 views/news/createcreate.php<h2>Create a news item</h2>
<form>
<?php echo validation_errors(); ?>
<?php echo form_open('news/create') ?>
<label for="title">Title</label>
<input type="input" name="title" /><br />
<label for="text">Text</label>
<textarea name="text"></textarea><br />
<input type="submit" name="submit" value="Create news item" />
</form>
然后是News类下的create 函数:
public function create(){
$this->load->helper('form');
$this->load->library('form_validation');
$data['title'] = 'Create a news item';
$this->form_validation->set_rules('title', 'Title', 'required');
$this->form_validation->set_rules('text', 'Text', 'required');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('templates/header', $data);
$this->load->view('news/create');
$this->load->view('templates/footer');
} else {
$this->news_model->set_news();
$this->load->view('news/success');
}
}
建表sql:
CREATE TABLE news (id int(11) NOT NULL AUTO_INCREMENT,title varchar(128) NOT NULL,slug varchar(128) NOT NULL,text text NOT NULL,PRIMARY KEY (id),KEY slug (slug));
然后到if ($this->form_validation->run() == FALSE) 这里的验证的时候,总是返回false. 刚刚的初学者..求助各位大仙...
本帖最后由 Closer 于 2014-10-30 17:15 编辑
你把 <input type="input" name="title" /><br />
改成 <input type="text" name="title" /><br />
static/image/hrline/line3.png
好像也不是這個問題...
眼睛看到快脫窗了
找不到問題在哪!
static/image/hrline/line3.png
你為什麼又包了一層 <form> ???
刪掉 <form> 後就會正常了
Closer 发表于 2014-10-30 17:09
你把
改成
我这边点完提交按钮后的地址栏路径变成:
http://localhost/weixinServer/index.php/news/localhost/weixinServer/index.php/news/create 这样的了.然后页面显示的内容是 :
404 Page Not FoundThe page you requested was not found.
以下是路由器的设置:$route['news/create'] = 'news/create';$route['news/(:any)'] = 'news/view/$1';$route['news'] = 'news';
以下是显示的静态页面配置$route['default_controller'] = "pages/view";$route['(:any)'] = 'pages/view/$1';
你的 <form> 有刪掉了? Closer 发表于 2014-10-30 17:35
你的有刪掉了?
删掉了.
請檢查你的 $config['base_url'] = ''; Closer 发表于 2014-10-30 17:52
請檢查你的 $config['base_url'] = '';
问题解决了,我在这里说下原因:
首先url路径的问题.地址栏双重路径. 是因为 $config['base_url'] = ''; 设置成了 $config['base_url'] = 'localhost/weixinServer';
解决:将此留空.
然后是在view下面create.php 中多出的 <form>问题,之前有在<h2>下面添加<form>的开始标签.这个多余了.去掉之后如下:
<h2>Create a news item</h2>
<?php echo validation_errors(); ?>
<?php echo form_open('news/create') ?>
<label for="title">Title</label>
<input type="input" name="title" /><br />
<label for="text">Text</label>
<textarea name="text"></textarea><br />
<input type="submit" name="submit" value="Create news item" />
</form>
然后全部保存,重新运行.执行ok,正常跳转页面.数据正常保存到数据库.
太感谢了这位大仙了....{:soso_e163:}{:soso_e160:}{:soso_e163:}
form应该用post来传送吧 codelvgao 发表于 2014-11-15 11:43
form应该用post来传送吧
form_open() 是用POST傳
http://codeigniter.org.cn/user_guide/helpers/form_helper.html#content 哪邊有說是用 GET ?
我都是用 POST 去承接值
页:
[1]