2015-08-27 2 views
3

Привет Я использую Grocery CRUD с HMVC, и я столкнулся с какой-то странной проблемой с этим.продуктовый crud вставить повторяющиеся данные несколько раз

class Source extends MX_Controller 
{ 

    function __construct() { 
     parent::__construct(); 
    } 

    function index(){ 
      try{ 
       $crud = new grocery_CRUD(); 

       $crud->set_theme('datatables'); 
       $crud->set_table('source'); 
       $crud->set_subject('Source'); 

       $output = $crud->render(); 
       $data['css_files'] = $output->css_files; 
       $data['js_files'] = $output->js_files; 
       $data['output'] = $output->output; 

       $this->template->title('Source') 
        ->set_layout('default') 
        ->build('example', $data); 

      }catch(Exception $e){ 
       show_error($e->getMessage().' --- '.$e->getTraceAsString()); 
      } 
    } 
} 

И в исходной таблице у меня есть только один «имя» столбца и другой идентификатор с автоматическим приращением и первичным ключом.

Когда я добавляю или вставляю данные, он добавляет несколько данных в таблицу в течение некоторого времени в 3 или 4 раза повторяющихся данных.

Я также использую библиотеку шаблонов.

Это странная проблема, с которой я столкнулся в первый раз с этим продуктом, может ли кто-нибудь помочь мне решить эту проблему.

+0

Если вы используете «файл вида» и «файл заголовка», то вы не дублируете PHP-код в обоих файлах. –

ответ

1

у меня такая же проблема с данными grocerycrud вставляются несколько раз, и я решаю эту проблему, добавив следующий код в файл js.

Я использовал DataTable тему и в этом файле был grocery_crud \ Themes \ DataTables \ JS \ DataTables-add.js

$('#save-and-go-back-button').click(function(event){ 
     event.stopImmediatePropagation(); 
     save_and_close = true; 

     $('#crudForm').trigger('submit'); 
}); 

$('#crudForm').submit(function(event){ 
     event.stopImmediatePropagation(); 
     $(this).ajaxSubmit({ 
      url: validation_url, 
....... 

нам нужно добавить "event.stopImmediatePropagation();" после нажатия и отправки событий.

Это поможет остановить множественную вставку в виде дубликатов.

0

Попробуйте сделать это, контроллер:

class Source extends MX_Controller 
    { 
     function __construct() { 
      parent::__construct(); 
     } 

     function index(){ 
      try{ 
       $crud = new grocery_CRUD(); 

       $crud->set_theme('datatables'); 
       $crud->set_table('source'); 
       $crud->set_subject('Source'); 

       //edit the id of source table as it's on your table.. 
       $crud->set_primary_key('id', 'source'); 

       //set the columns you want 
       $crud->columns(
        'id', 
        'name' 
       ); 

       //how do you want to display them in the frontend 
       $crud->display_as('id', 'id'); 
       $crud->display_as('name', 'name'); 

       $table = $crud->render(); 
       $this->_table_output($table); 

      }catch(Exception $e){ 
       show_error($e->getMessage().' --- '.$e->getTraceAsString()); 
      } 
     } 
    } 

Дополнительные функции необходимы:

private function _table_output($output = null) 
{ 
    //load reservations table 
    $this->load->view('yourviewfile', $output); 
} 

Вид:

<?php 
foreach($output['css_files'] as $file): ?> 
    <link type="text/css" rel="stylesheet" href="<?php echo $file; ?>" /> 
<?php endforeach; ?> 
<?php foreach($output['js_files'] as $file): ?> 
    <script src="<?php echo $file; ?>"></script> 
<?php endforeach; ?> 

<div> 
    <?php echo $output['output']; ?> 
</div> 
+0

такой же проблема с этим тоже. – user2293790

+0

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

+0

с этим его показать больше проблемы – user2293790

0

есть причина, чтобы дублированные строки в списке, когда дисплей продуктовую CRUD: - ЕСЛИ У ВАС ЕСТЬ функции Relation (set_relation_n_n) между зрения и таблицы, то вы должны быть уверены в том, что вид у уникальный ID столбец (без каких-либо повторяющихся значений), иначе вы получили дублированный строку, решение заключается в использовании: $ crud-> set_primary_key ('идентификатор', 'VIEWNAME'); класть этот line перед тем отношение функция.