php get 相同,关于php:如何在CodeIgniter中以不同的功能将后方法表单提交到相同的get-url?...

我发现CodeIgniter表单验证可以通过load-> view方法显示错误消息,如果使用"重定向",则会丢失字段错误消息。

目前,我使用一个功能显示表单页面,使用另一个功能处理表单发布。

class Users extends CI_Controller {

function __construct() {

parent::__construct();

}

public function sign_up()

{

$this->load->view('users/sign_up');

}

public function do_sign_up(){

$this->form_validation->set_rules('user_login', 'User Name', 'trim|required|is_unique[users.login]');

$this->form_validation->set_rules('user_email', 'Email', 'trim|required|valid_email|is_unique[users.email]');

if ($this->form_validation->run() == FALSE) {

$this->load->view('users/sign_up');

}else {

// save post user data to users table

redirect_to("users/sign_in");

}

当表单验证失败时,浏览器中的URL将更改为" / users / do_sign_up",我想在sign_up页面中保留相同的URL。

在表单验证失败时使用redirect(" users / sign_up")方法将保留相同的url,但是验证错误消息将会丢失。

在Rails中,我不能使用路由来进行如下配置:

get"users/sign_up"       =>"users#signup"

post"users/sign_up"       =>"users#do_signup"

恕我直言,没有必要检查请求方法,因为如果用户"获取"到页面要显示注册视图...如果他们使用" POST"到页面并通过验证失败,那么您也要显示注册 视图。 当用户" POST"到页面并通过验证时,您只不想显示注册视图。

恕我直言,这是在CodeIgniter中最优雅的方式:

public function sign_up()

{

// Setup form validation

$this->form_validation->set_rules(array(

//...do stuff...

));

// Run form validation

if ($this->form_validation->run())

{

//...do stuff...

redirect('');

}

// Load view

$this->load->view('sign_up');

}

顺便说一句,这就是我在config / routes.php内部所做的操作,以使我的CI变得类似于RoR。 请记住,routes.php只是一个普通的php文件,因此您可以根据请求方法放置一个开关以生成不同的路由。

switch ($_SERVER['REQUEST_METHOD'])

{

case 'GET':

$route['users/sign_up'] ="users/signup";

break;

case 'POST':

$route['users/sign_up'] ="users/do_signup";

break;

}

看起来不错 哈德特这样想。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值