2013-05-18 3 views
0

У меня проблема с использованием CodeIgniter Form Helper и Smarty.CodeIgniter, 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} 

Но теперь, когда я попробовать это. У меня две проблемы. Во-первых, сообщение «Ошибка! Пользователь не может создать» все время отображается, когда я вызывал функцию addUser(). Вторая проблема заключается в том, что url, который генерируется по форме submit, выглядит следующим образом: «http://dev.url.de/admin/addUser/dev.url.de/pageadmin/addUser».

большое спасибо и извините за мой плохой английский ...

ответ

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'} 
+0

Первая проблема теперь исправлена, но вторая проблема все еще существует. Я попробовал оба решения от вас. В обоих случаях URL был одинаковым. – Vico

+0

возможно, это поможет с проблемой URL-адреса: https://github.com/EllisLab/CodeIgniter/wiki/Use-URL-helper-from-Smarty –

+0

Я меняю его на {form url = $ base_url | cat: 'admin/addUser '} $ base_url - это функция base_url() от codeigniter. И теперь у меня есть http://dev.url.de/admin/addUser/dev.url.de/dev.url.de/admin/addUser – Vico

Смежные вопросы