2015-04-03 2 views
0

У меня есть это удаление и добавление функции учетной записи администратора теперь в CodeIgniter. Но я хочу, чтобы он работал вместе. Есть ли способ решить это? Удаление и сохранение работают должным образом отдельно.Две формы, одна страница codeigniter

Контроллер:

public function index() 
    { 
     $this->load->library('form_validation'); 

     // model aanroepen 
     $this->load->model('Admin_model', '', TRUE); 


     // see if there is post 
     if ($this->input->server('REQUEST_METHOD') == 'POST') { 
        $username = $this->input->post("username"); 
        $password = $this->input->post("password"); 

        $this->form_validation->set_rules('username', 'Username', 'required'); 
        $this->form_validation->set_rules('password', 'Password', 'required'); 
        if ($this->form_validation->run() != FALSE) { 

         $new_admin = new Admin_model(); 
         $new_admin->Admin_name = $username; 
         $new_admin->Admin_password = $password; 

         $this->Admin_model->save($new_admin); 


       } 
     } 

     if ($this->input->server('REQUEST_METHOD') == 'POST') { 

      $userid = $this->input->post("id_admin"); 

      $this->Admin_model->delete($userid); 


     } 


     $tweets = $this->Admin_model->get_all(); 
     $viewdata = [ 
      "tweets" => $tweets 
     ]; 


     $this->load->view('admin/admin', $viewdata); 

    } 


} 

Вид:

<?php echo validation_errors() ?> 

    <h1>Create new admin</h1> 

    <form action="" method="post"> 
     <label for="username">Username</label> 
     <input type="text" id="username" name="username"/> 
     <br/> 
     <label for="password">Password</label> 
     <input type="password" id="password" name="password"/> 

     <button type="submit" id="admin_submit">Submit</button> 
    </form> 


    <h1>Delete admin</h1> 


    <?php foreach($tweets as $t): ?> 
     <?php echo "<p>" . $t['admin_name']."</p> "; ?> 

     <form action="" method="post"> 
      <input type="text" name="id_admin" value="<?php echo $t['admin_id'] ?>" /> 
      <button type="submit" name="delete">Delete</button> 
     </form> 

    <?php endforeach; ?> 
+0

какие проблемы вы сталкиваетесь или какие ошибки вы получаете? –

+0

Когда я нажму кнопку «Удалить», он покажет ошибки проверки – user3071261

ответ

1

Если вы хотите сделать и работать вместе, тогда пожалуйста, поставить некоторое скрытое значение как в форме и получить это значение и поставить проверку в соответствии с этой скрытой стоимостью или кнопки, какая кнопка была нажата Submit .. функцией IsSet Как

if(isset($_POST['save'])) // or check hidden field value here 
{ 
/* here put save button validation Or validation according for hidden value */ 

}else if(isset($_POST['delete'])) 
{ 
/* Delete validation OR other validation */ 
} 

В вашем контроллере

1

да, вы можете добавить имя тега на сохранение и кнопку удаления в виду как

<button type="submit" name="save" id="admin_submit">Submit</button> 

теперь получить это контроллер как

if(isset($_POST['save'])) 
{ 
    //here your code of save only its work for when you click save button 
} 

же, как и для удаления и отлично работает на той же функции

0

Оба чеках метода пост, поэтому, когда вы разместите форму удаления, то на самом деле идет в свой первый метод.

ли этот чек, который проверяет, если вы нажали на кнопку Удалить:

$is_delete = $this->input->post('delete'); 

И изменение:

if ($this->input->server('REQUEST_METHOD') == 'POST') 

к:

if (isset($is_delete)) 

сделать то же самое для сохранения действие:

<button type="submit" name="save_admin" id="admin_submit">Submit</button> 

ли этот чек, который проверяет, если вы нажали кнопку удаления:

$is_save = $this->input->post('save_admin'); 

И изменение:

if ($this->input->server('REQUEST_METHOD') == 'POST') 

к:

if (isset($is_save)) 

Таким образом, вы не звоните метод каждый раз, когда вы получаете запрос POST.

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