0

CodeIgniter Form Helper と Smarty を使用する際に少し問題があります。

これを使用しました ( https://github.com/EllisLab/CodeIgniter/wiki/Form-helper-with-Smarty ) フォーム ヘルパー関数。

今、コントローラーに addUser() 関数があります

    public function addUser(){
        $this->load->helper('form');

        $this->form_validation->set_rules('username', 'Benutzername', 'trim|required|min_length[4]|xss_clean');
        $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
        $this->form_validation->set_rules('password', 'Passwort', 'trim|required|min_length[4]|max_length[32]');
        $this->form_validation->set_rules('con_password', 'Passwort bestätigen', 'trim|required|matches[password]');

        if($this->form_validation->run() == FALSE){
            echo "Error! User can not create";
        }else{
            $this->user_model->add_user();
            echo "Done!";
        }
        $this->smarty->display($this->tpl);
    }

そして、私が使用した次の.TPL

    {form url='pageadmin/addUser'}
<p>
    <label for="username">User Name:</label>
    <input type="text" id="username" name="user_name" />
</p>
<p>
    <label for="email_address">Your Email:</label>
    <input type="text" id="email" name="email_address" />
</p>
<p>
    <label for="password">Password:</label>
    <input type="password" id="password" name="password" />
</p>
<p>
    <label for="con_password">Confirm Password:</label>
    <input type="password" id="con_password" name="con_password" />
</p>
<p>
    <input type="submit" value="Submit" />
</p>
{form}

しかし、今、私がこれを試してみると。2 つの問題があります。1 つ目は、関数 addUser() を呼び出したときに、「エラー! ユーザーは作成できません」というメッセージが常に表示されることです。2 つ目の問題は、フォームの送信によって生成される URL が「http://dev.url.de/admin/addUser/dev.url.de/pageadmin/addUser」のようになることです。

どうもありがとうございました。私の悪い英語で申し訳ありません...

4

1 に答える 1

0

明らかにフォームが失敗していますが、失敗した理由を返していません。コードを次のように変更します。これにより、検証に合格していないものを見つけるためにどこを見ればよいかがわかります。

if($this->form_validation->run() == FALSE){
            echo validation_errors();
        }else{

検証エラーにより、どのルールに問題があるかがわかるので、そこからトラブルシューティングを続けることができます。

URLに関しては、単純に相対URLのためです.Smartyを使用していないため、base_url()の使用方法がわかりませんが、次の「可能性があります」

{form url=base_url().'pageadmin/addUser'}

それでもうまくいかない場合は、次のようにする必要があります。

{form url='../pageadmin/addUser'}
于 2013-05-18T15:53:11.297 に答える