0

私はかなり一般的な問題を抱えています。私は小さなフォームを持っています

    <form action="<?=base_url();?>ticket/close_ticket/<?=$ticket_details['id'];?>" method="post" id="close_ticket" name="close_ticket">
        <ul>
            <li><label for="frm_status">Status<span class="req">*</span></label>
                <span class="input">                        
                    <select id="frm_status" name="status" onchange="this.form.submit()">
                            <option value="<? if ($ticket_details['status'] == "Open") $status= "1"; else $status= "2"; echo $status;?>"><? if ($ticket_details['status'] == "Open") $status= "Open"; else $status= "Closed"; echo $status;?></option>
                            <option value="<? if ($ticket_details['status'] == "Open") $status= "2"; else $status= "1"; echo $status;?>"><? if ($ticket_details['status'] == "Open") $status= "Closed"; else $status= "Open"; echo $status;?></option>                  
                    </select>
                </span>
            </li>
        </ul>
     </form>

このフォームにはドロップ リスト オプション ボックスが含まれており、変更時にフォームをクローズ チケット コントローラーに送信します......

      public function close_ticket()
  {
    $this->load->model('ticket_model');
    $ticket_id = mysql_real_escape_string($this->uri->segment(3));

    if($_POST)
    {
        //save ticket
        unset ($_POST['id']);
        $_POST['id'] = $ticket_id;
        $this->ticket_model->close_ticket($_POST);

        redirect(base_url().'ticket/edit/'.$ticket_id.'/');
        return;

    }
    redirect(base_url().'ticket/edit/'.$ticket_id.'/');
  }

それがします。このコントローラーは、モデルに情報を投稿して SQL を更新するためのものです.....

    public function close_ticket($ticket_post)
{
$query = $this->db->query("SELECT id FROM ".$this->tables_ticket." WHERE id = '".mysql_real_escape_string($ticket_post['id'])."';");

if($query->num_rows() > 0)
        {
        $row = $query->row();
        $query = $this->db->query("UPDATE ".$this->tables_ticket."
                                    SET
                                    status = '".mysql_real_escape_string($ticket_post['status'])."'
                                    WHERE
                                    id = '".mysql_real_escape_string($ticket_post['id'])."'
                                    ");
        }
    if($this->db->affected_rows() > 0) return true;
    else return false;
}

その後、フォームにリダイレクトします。リダイレクトすると、フォームはドロップリストに更新されたデータを入力すると想定しています。これは、変更されたデータを送信し、どこかで変更を登録せず、ページを変更せずに返すため、私が苦労している場所です。質問、これは確認/二次送信ページとそれに続くリダイレ​​クトで機能しますか?それは、失敗しているのと同じ関数で変更されたデータを返そうとしていることですか?

    $body_data['ticket_list']       = $this->ticket_model->list_ticket();
    $body_data['ticket_details']    = $this->ticket_model->get_ticket($ticket_id);
    $body_data['ticket_summary']    = $this->ticket_model->list_ticket_summary($ticket_id);
    $body_data['customer_list']     = $this->ticket_model->get_customer_details($ticket_id);
    $body_data['precan_list']       = $this->ticket_model->list_messages();
    $body_data['users_list']        = $this->ticket_model->list_users();

    $foot_data['accordian_active'] = 5;

    $this->load->view('head',$head_data);
    $this->load->view('sidebar/service',$head_data);
    $this->load->view('ticket/edit',$body_data);
    $this->load->view('foot',$foot_data);
    return;

編集機能は、単純に人口クエリ リストの範囲を返します。ticket_details リストを再作成するための新しいクエリが必要でない限り?

4

0 に答える 0