SmartyでCodeIgniterを使用しています。私が遭遇した問題は、フォームヘルパーを使用しているときです。ここにあるコードを使用しました。
form_open
したがって、実際にCIネイティブを使用してフォームタグを開いたり閉じたりしてform_close
も、フォームの送信後form_validation->run()
も常にfalse
です。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class User extends CI_Controller {
public function index()
{
$this->register();
}
function register()
{
$data['title'] = 'Register';
$this->load->library('form_validation');
//$this->form_validation->set_rules()
if($this->form_validation->run() == FALSE)
{
//the form has not been submitted or there are errors
$this->parser->parse("register", $data);
}
else
{
//validated and submitted
die();
}
}
function login()
{
$data['title'] = 'Login';
$this->parser->parse("login", $data);
}
}
そしてテンプレートは
Registration page
{form url='user/register'}
<table>
<tr>
<td>Username</td>
<td><input type="text" name="reg_username" id="reg_username"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="reg_password" id="reg_password"></td>
</tr>
<tr>
<td>First Name</td>
<td><input type="text" name="reg_firstname" id="reg_firstname"></td>
</tr>
<tr>
<td>Last Name</td>
<td><input type="text" name="reg_lastname" id="reg_lastname"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="submitted"/></td>
</tr>
</table>
{form}
フォームが送信されたときにコマンドが実行されることを期待die()
していますが、そうではありません。何が間違っているのか教えてください。
PS SmartyをCodeIgniterに統合するために使用した方法は、https://github.com/Vheissu/Ci-Smartyです。