Как получить текущий идентификатор для обновления конкретного идентификатора - PullRequest
0 голосов
/ 07 декабря 2018

Я использую first,next,prev,last links для перехода к соответствующим записям. Теперь моя проблема в том, что если я хочу обновить значение до текущего идентификатора, я хочу передать этот идентификатор для обновления функции контроллера. Как я могу получить текущийЯ бы?Вот как я передаю значение со страницы просмотра в контроллер.

Обновление представления:

 <a href='<?php 'BookKeeping/update/.$id[recno];'?>' class='button'><i class="icon-loop3 position-left">Update</button></i></a>

Контроллер для обновления:

    public function update($id="")
{
$dc=$this->input->post('dc');
            if($dc=='c'){
            $amount=$this->input->post('credit1');
                        } 
            else if ($dc=='d') {
            $amount=$this->input->post('debit');
                                }

$data1=array(
      'date' =>$this->input->post('TDate'),
      'code' =>$this->input->post('TName'),
      'project' =>$this->input->post('TName1'),
      'part' =>$this->input->post('part1'),
      'part1' =>$this->input->post('part2'),
      'dc'=>$this->input->post('dc'),
      'amount'=>$amount,
   );
$this->db->where('recno', $id);
$this->db->update('daybook', $data1); 
redirect('BookKeeping/daybook','refresh');
}
    }

Просмотр страницы для перемещения first,next,last,prev

 <a href='<?php echo base_url().'BookKeeping/daybook/'.$firstID['first']; ?>' class='button'><i class="icon-first">First</i></a><br><br>
                                    <?php
                                        if($currentID != $lastID['last']){
                                            foreach ($allData as $next_key => $next_value) {
                                                //echo $next_key+1;
                                                //echo '<pre>';print_r($next_value);exit();
                                                if($currentID == $next_value['recno']){
                                                   $nextID = $allData[$next_key+1];

                                                }
                                            }
                                            $anchorTagNext = base_url().'BookKeeping/daybook/'.$nextID['recno'];
                                        }else {
                                            $anchorTagNext = '#';
                                        }
                                    ?>
                                        <a href='<?php echo $anchorTagNext; ?>' class='button'><i class="icon-next">Next</i></a><br><br>
                                    <?php
                                        if($currentID != $firstID['first']){
                                            foreach ($allData as $prev_key => $prev_value) {
                                                //echo '<pre>';print_r($prev_value);exit();

                                                if($currentID == $prev_value['recno']){
                                                    //echo $allData[$prev_key-1]['recno'];exit();
                                                   $prevId = $allData[$prev_key-1];
                                                }
                                            }
                                            $anchorTagPrevious = base_url().'BookKeeping/daybook/'.$prevId['recno'];
                                        } else {
                                            $anchorTagPrevious = '#';
                                        }
                                    ?>
                                    <a href='<?php echo $anchorTagPrevious; ?>' class='button'><i class="icon-previous">Previous</i></a><br><br>
                                    <a href='<?php echo base_url().'BookKeeping/daybook/'.$lastID['last']; ?>' class='button'><i class="icon-last">Last</i></a>

    </ul>

Контроллер для перемещения first,next,prev,last:

$first = $this->db->query('SELECT MIN(recno) AS `first` FROM `daybook` ORDER BY recno DESC LIMIT 1')->row_array();

    $firstID = $this->db->query("SELECT * FROM `daybook`  where recno='$first[first]' ORDER BY recno ASC")->result_array();
    //$firstID = $firstIDQuery->result_array();
    $last = $this->db->query('SELECT MAX(recno) AS `last` FROM `daybook` ORDER BY recno DESC LIMIT 1')->row_array();
    $lastID = $this->db->query("SELECT * FROM `daybook` where recno='$last[last]'  ORDER BY recno")->result_array();
    //$lastID = $lastIDQuery->result_array();

    //$id = 1;
    if(!empty($id)){
        $result = $this->db->query("SELECT * FROM daybook WHERE recno = $id")->row_array();
    }else{
        $result = "";
    }

    $allData = $this->db->query("SELECT * FROM daybook ORDER BY recno ASC")->result_array();

        //$result = $resultQuery->result_array();

    if(!empty($id)){
        $data['currentID'] = $id;
    }else {
        $data['currentID'] = $first['first'];
    }
    $data['firstID'] = $first;
    $data['lastID'] = $last;
    $data['result'] = $result;
    $data['allData'] = $allData;

Помогите мне передать currrent id на controller

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

это можно сделать, передав значение currentID в контроллер. Вызов обновления должен быть определен в теге формы

<form  class="form-horizontal" method="POST" action="<?=site_url('BookKeeping/update/'.$currentID)?>">
                            <input type="hidden" name="id" id="id"  value="<?php echo $currentID ?>">
                    <button type="submit" class="btn btn-info btn-xs"><i class="glyphicon glyphicon-ok"></i>update</button>

Код контроллера:

 public function update($id='')
{

      $session_data = $this->session->userdata('logged_in');
        $data['username'] = $session_data['username'];

        $id=$this->input->post('id');
        echo "<pre>";var_dump($id);
            $dc=$this->input->post('dc');
            if($dc=='c'){
            $amount=$this->input->post('credit1');
                        } 
            else if ($dc=='d') {
            $amount=$this->input->post('debit');
                                }

$data=array(
      'date' =>$this->input->post('TDate'),
      'code' =>$this->input->post('TName'),
      'project' =>$this->input->post('TName1'),
      'part' =>$this->input->post('part1'),
      'part1' =>$this->input->post('part2'),
      'dc'=>$this->input->post('dc'),
      'amount'=>$amount,
   );
$this->db->where('recno', $_POST['id']);
$this->db->update('daybook', $data);
0 голосов
/ 07 декабря 2018

Если вы пытаетесь получить автоматически сгенерированный идентификатор после ВСТАВКИ с пропущенным автоматически сгенерированным первичным ключом, вы можете использовать простой помощник, предоставленный для этого

$last_autogenerated_id = $this->db->affected_rows()

после выполнения запроса на вставку.

Вы можете подробно изучить, что говорится в документации о Query Helper Method

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