Таблица начальной загрузки — как назначить ширину 0

#jquery #html #css #twitter-bootstrap

#jquery #HTML #css #twitter-bootstrap

Вопрос:

Я создаю веб-сайт с таблицей начальной загрузки. Есть строки со столбцами, каждая строка с кнопкой редактирования. Чтобы загрузить таблицу, покажите любые столбцы и скройте другие.

При нажатии на кнопку открывается окно-моддал с данными этой строки. Есть небольшая проблема: когда столбец скрыт, информация не отображается, потому что я использую метод POST.

Моя идея заключается в том, чтобы присвоить ширину 0 скрытым столбцам, данные будут находиться на веб-сайте, но 0 ширины.

Мой код:

 <table class='table-bordered' id='tableprod'
                                   data-toggle='table'
                                   data-toolbar='#toolbar'
                                   data-show-refresh='true'
                                   data-show-toggle='true'
                                   data-sort-name='name'
                                   data-sort-order='desc'
                                   data-show-columns='true'
                                   data-pagination='true'
                                   data-search='true'>

                        <thead class='thead-inverse'>
                            <tr>  
                                <th data-switchable='false' data-checkbox='true'></th>
                                <th data-switchable='false'></th>
                                <th data-sortable='true'>EDICIÓ</th>  
                                <th data-sortable='true'>PÀG.</th>  
                                <th data-sortable='true' data-switchable='false'>CODI</th>  
                                <th data-switchable='false'>IMATGE</th>
                                <th data-sortable='true'>DESCRIPCIÓ CAT</th> 
                                <th data-sortable='true' data-visible='false'>DESCRIPCIÓ ESP</th> 
                                <th data-sortable='true'>MARCA</th> 
                                <th data-sortable='true'>GRAMATJE</th>
                                <th data-sortable='true' data-visible='false'>DESTACAT</th> 
                                <th data-sortable='true'>PVP-CAT</th> 
                                <th data-sortable='true'>PVP-LEV</th> 
                                <th data-sortable='true'>PVP-AND</th>
                                <th data-sortable='true'>PVP-CEN</th>
                                <th data-sortable='true'>PVP-NOR</th>
                                <th data-sortable='true'>PVP-VAS</th>
                                <th data-sortable='true'>PVP-SPAR</th>
                                <th data-sortable='true' data-visible='false'>USER</th>
                                <th data-sortable='true' data-visible='false'>FECHA-MOD</th>
                                <th data-sortable='false' data-switchable='false'>EDIT</th>
                            </tr> 
                        </thead>
  

это загружает данные из php-скрипта…

Скрытые столбцы не отображают значения модального окна. Я думаю, что решение состоит в том, чтобы показать все столбцы, кроме любых столбцов с шириной 0, эффект тот же, что и у скрытых столбцов.

Мой код для добавления значений в модальное окно:

 /* EDIT MODAL WINDOW */

            $('#edit').on('show.bs.modal', function (event) {

                  var $button = $(event.relatedTarget) // Button that triggered the modal
                  var row = $button.closest("tr"), // edit button is in the same row as data you want to change
                  $tds = row.find("td"); // get all table cells in that row

                  $.each($tds, function(index,value) {

                    var field = $(this).data("field");

                    console.log($(this).text());

                    $('[name="'   field  '"]').val($(this).text()); //input name in the modal window
                  });

                 var src_value = $tds.closest("td").find('img').attr('src');
                 $('[name="imagen"]').attr("src",src_value);

            });
  

И из другого файла php обновите базу данных:

 $codigo = $_POST['codigo'];
$edicion = $_POST['edicion'];
$pagina = $_POST['pagina'];
$descripcion_esp = $_POST['descripcion_esp'];
$descripcion_cat = $_POST['descripcion_cat'];
$marca = $_POST['marca'];
$gramaje = $_POST['gramaje'];
$destacado= $_POST['destacado'];
$pvp_cat = $_POST['pvp_cat'];
$pvp_lev = $_POST['pvp_lev'];
$pvp_and = $_POST['pvp_and'];
$pvp_cen = $_POST['pvp_cen'];
$pvp_nor = $_POST['pvp_nor'];
$pvp_vas = $_POST['pvp_vas'];
$pvp_spar = $_POST['pvp_spar'];

$query = "UPDATE....."
  

Как изменить ширину столбцов начальной загрузки-таблицы?

Комментарии:

1. Вы могли бы использовать <input type="hidden"> , чтобы включить скрытые данные в отправку формы.

2. Пожалуйста, уточните вашу конкретную проблему или добавьте дополнительные сведения, чтобы выделить именно то, что вам нужно. Как написано в настоящее время, трудно точно сказать, о чем вы спрашиваете.

3. Проблема не в скрытых полях ввода. Я обновляю свой запрос.

Ответ №1:

Я не уверен, в чем проблема, но если вы просто хотите скрыть столбец, который вы могли бы использовать data-visible :

 <th data-visible="false">Column</th>
  

У меня есть обходной путь для вашего случая, просто скройте столбцы, используя data-visible , как показано в приведенном выше коде, а затем покажите их, когда вы захотите повторить tds с помощью :

 $('table').bootstrapTable('showColumn', 'columnName');
  

И когда вы закрываете модальный, скрываете их снова :

 $('table').bootstrapTable('hideColumn', 'columnName');
  

Вы могли бы показать весь скрытый столбец, используя each() метод с .bootstrapTable('getHiddenColumns') :

 $.each($('table').bootstrapTable('getHiddenColumns'), function (key, column) {
    $('table').bootstrapTable('showColumn', column['field']);
});
  

Надеюсь, это поможет.

Комментарии:

1. Я не очень хорошо объясняю. Чтобы открыть модальное окно, не показывайте значения полей, которые скрывают столбцы таблицы. Я не знаю, как отображать все значения таблицы в окне-модальном, хотя из скрытых столбцов. Другим решением будет запуск php-запроса при открытии модального окна.

2. Как вы отображаете данные в модальном? пожалуйста, добавьте больше кода, чтобы мы лучше поняли ситуацию здесь..

3. Я использую javascript для отображения значений. И я создаю страницу php для обновленных значений базы данных, используя метод POST, когда нажимаю кнопку window -modal, она работает нормально. Проблема в полях без значений…. Я обновил код.

4. Спасибо @Zakaria Acharki. Это кажется хорошей идеей, я попробую 😉

5. Вопрос: как это метод закрытия модального окна?