У меня есть большая строковая информация, передаваемая из представления в контроллер. Строка может превышать 65535 символов. Я попытался сохранить его в сессионных флэш-данных.Как хранить данные, отправленные из представления в контроллер в CI
Это мой метод в контроллере для хранения данных
public function get_dt_pemenuhan_d2(){
$this->load->library('session');
$list = $this->input->post('no_pnh'); //a huge list of item
$this->session->set_flashdata('sess_no_pnh',$list);
}
и это мой метод, чтобы извлечь данные из сеанса flashdata
public function pembebanan2(){
$this->load->library('session');
$get_no_pnh = $this->session->flashdata('sess_no_pnh');
$data = array('no_pnh' => $get_no_pnh);
$this->load->view('memo_pembebanan2',$data); //sending the data to a view
}
Все хорошо для небольших данных (менее чем 500 символов). Но если я храню огромные данные, на представление ничего не отправляется. Я использовал предупреждение, чтобы убедиться, что все данные полностью отправлены контроллеру, и все в порядке. Итак, что не так в коде?
Любая помощь и предложения приветствуются. Спасибо
Edit: это мнение, и как я отправляю данные в контроллер, а затем просмотреть его в виде всплывающего вида
$("#btn_memo").on('click',function(e){
var arr_pnh = [];
$('#tbl_content tr td:nth-child(2)').each(function(){
var x = $(this).text().split('||');
arr_pnh.push(x[1]);
});
var no_pnh = arr_pnh;
$.post('<?php echo site_url('con_atk/get_dt_pemenuhan_d2'); ?>',{no_pnh:no_pnh},function(){
popUp = new Boxy("<iframe src='<?php echo site_url('con_atk/pembebanan2') ?>' width='640px' height='480px' frameborder='0'></iframe>" , {title: "<strong>Memo Pembebanan</strong>" , modal: true});
});
});
И это мнение:
<div id="div_tbl_body">
<table id="tbl_content" width="100%" class="table table-bordered" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th style="width:4%; text-align:right">No</th>
<th style="width:32%; text-align:center">Names</th>
</tr>
</thead>
<tbody>
//"<tr><td>"+ no++ +"</td>";<!-- This is generated by AJAX-->
// "<td align='center'>"+ id +"<font size='1px' color='#FFFFFF'>||"+no_pnh+"</font></td></tr>";<!-- This is generated by AJAX-->
</tbody>
</table>
</div>
Мой вопрос: почему я не мог хранить огромные sata в сеансе? есть ли возможность хранить огромные данные в контроллере и к ним можно получить доступ, за исключением использования сеанса?
Спасибо за ваш ответ. Данные не из базы данных. Это из таблицы в представлении. Это просто огромный список имен. Я не могу использовать функцию, которую вы предложили, потому что я использую какой-то всплывающий плагин, который должен использовать сеанс. – Vahn
О, я сори. Вы пытаетесь отобразить символы в popup boxy, я прав? –
да. на самом деле он работает нормально. но для примерно 500 символов или около 75 имен в списке. Мне может понадобиться больше, чем это. Может потребоваться более 1000 имен. – Vahn