загрузка представления дважды в codeigniter - PullRequest
0 голосов
/ 16 июня 2011

Здравствуйте, я только начал CodeIgniter.У меня проблема с загрузкой представления.

Мой сценарий - создание образца добавления.После отправки он отправляется в контроллер и вставляет записи в базу данных.Я хочу, чтобы если операция с базой данных прошла успешно, она снова приходит к тому же представлению, снова имея некоторые значенияИ на основе этих значений я показываю некоторые конкретные строки, информирующие пользователя об операции вставки.Моя функция в контроллере выглядит как

public function add_user()
{
    $this->load->view('add_user');
    $post=$this->input->post();
    if(isset($post['name']))
    {
        $data=array(
        'name'=>$post['name'],
        'designation'=>$post['designation']
        );
        if($this->db->insert('user',$data))
        $result['update']=true;
        else
        $result['update']=false;
        $this->load->view('add_user',$result);
    }

}

И мой взгляд выглядит как

    <h1 align="center">Add User</h1>
    <table border="0" cellpadding="2" cellspacing="2" align="center">
        <?php
        if(isset($update))
        {
            if($update)
            {
                ?>
                <tr bgcolor="#00FF00">
                    <td>Record Added Successfully</td>
                </tr>
            <?php
            }
            else
            {
                ?>
                <tr bgcolor="#FF0000">
                    <td>Insertion Operation Failed</td>
                </tr>
            <?php
            }   
        }
        ?>
        <?php echo(form_open('first/add_user'));?>
            <tr>
                <td>Name</td>
                <td><input type="text" name="name" /></td>
            </tr>
            <tr>
                <td>Designation</td>
                <td>
                    <select name="designation">
                        <option value="Junior PHP Developer">Junior PHP Developer</option>
                        <option value="Senior PHP Developer">Senior PHP Developer</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td colspan="2" align="center">
                    <input type="submit" name="submit" value="Add User" />
                </td>
            </tr>   
        </form>
    </table>

Теперь, что я хочу, чтобы, если операция вставки прошла успешно, я отправлял истинное значение для просмотра, а если нет, то яотправляю ложное значение.И на основе этого значения я показываю несколько строк.Я загружаю представление два раза согласно я понял логику.Потому что в первый раз он загружает форму, а во второй раз загружает представление с некоторым значением true или false.Но что происходит, что после перезагрузки есть две формы.Я знаю, что эта проблема связана с двойной загрузкой моего взгляда.я хочу спросить, есть ли другой способ отправки значений после операции базы данных для просмотра?

Ответы [ 2 ]

2 голосов
/ 16 июня 2011

Просто загрузите ваше представление один раз:

public function add_user()
{
  $post=$this->input->post();
  $result = array();
  if(isset($post['name']))
  {
      $data=array(
       'name'=>$post['name'],
       'designation'=>$post['designation']
      );
      if($this->db->insert('user',$data))
      $result['update']=true;
      else
      $result['update']=false;
  }
  $this->load->view('add_user',$result);
}

Кстати, ваш код немного запутан, работайте над ним

0 голосов
/ 30 мая 2014
// try something like this
//you may need to use form validation helper 

//load add user form
public function add_user(){
//any data required for the form
$data['anything'] = '';
$this->load->view('add_user',$data);
}
//to process adding user action, form action will point to this
function adding_user(){
 if($this->input->post('name')){
   $data=array(
   'name'=>$post['name'],
   'designation'=>$post['designation'];
    if($this->db->insert('user',$data)){
     echo 'user added successfully!';
    }else{
     redirect(user/add_user);
    }
  );

 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...