вставить столбец типа ввода в таблицу начальной загрузки

У меня проблема с таблицей начальной загрузки, у меня есть таблица начальной загрузки, заполненная данными из базы данных с использованием JQuery AJAX, я хочу вставить/добавить <input type="text"/> в последний столбец каждой записи.

Мой сценарий Jquery:

<script type="text/javascript">
    $(function(){

        var baseurl = "<?php print site_url('/quotes/get'); ?>";                  

            $.ajax({
                method: "POST",
                url: baseurl,
                data: { analid: 1 },
                dataType: 'json'
            })
                .done(function( msg ) {

                console.log(msg);

                $('#qtable').bootstrapTable({
                    data: msg
                });

            });

    });
</script>

приведенный выше скрипт работает, отображая данные из базы данных, затем я нашел эту ссылку (ССЫЛКА ЗДЕСЬ ), в нижней части этой сети я увидел какой-то метод bootstraptable, например добавление статического столбца.

Обновлен код Jquery Script:

 $(function() {
    var baseurl = "<?php print site_url('index.php/quotes/get'); ?>";
    $.ajax({
            method: "POST",
            url: baseurl,
            data: {
                analid: 1
            },
            dataType: 'json'
        })
        .done(function(msg) {

            console.log(msg);

            $('#qtable').bootstrapTable({
                data: msg,
                columns: [{ //<--- here is where I lost.. I don't know what to do here or what should I add..
                    field: 'operate',
                    title: 'Item Operate',
                    align: 'center',
                    valign: 'middle',
                    clickToSelect: false,
                    formatter: operateFormatter,
                    events: operateEvents
                }]

            });

        });
});

Приветствуются любые альтернативные и оптимизированные решения.

Спасибо!


person Waelhi    schedule 10.04.2015    source источник


Ответы (3)


вы можете использовать параметр столбца formatter . см. пример ЗДЕСЬ

formatter : function(value,row,index) {
   return '<input name="elementname"  value="'+value+'"/>';
   //return '<input name="elementname"  value="'+row.id+'"/>';     here id is your field name
 }     

Функция форматирования ячеек принимает три параметра:

  1. значение: значение поля.
  2. row: данные записи строки.
  3. index: индекс строки.

в этом случае ваш код будет таким, как показано ниже (предположим, что «операция» — это имя вашего последнего столбца)

$('#qtable').bootstrapTable({
            data: msg,
            columns: [{ //<--- here is where I lost.. I don't know what to do here or what should I add..
                field: 'operate',
                title: 'Item Operate',
                align: 'center',
                valign: 'middle',
                clickToSelect: false,
                formatter : function(value,row,index) {
                   return '<input name="elementname"  value="'+value+'"/>';
                   //return '<input name="elementname"  value="'+row.id+'"/>';     here id is your field name 
                }  
            }]

        });
person Nishit Maheta    schedule 10.04.2015
comment
это полностью работает ... но отображается в первом столбце ... Я хочу, чтобы он отображался в последнем столбце (хотя я добавляю data-formatter ="operate"). - person Waelhi; 12.04.2015
comment
Каково ваше последнее имя поля в массиве json ?? - person Nishit Maheta; 12.04.2015
comment
ах. поэтому он должен быть основан на json array .. извините, мой плохой .. но на самом деле я имею в виду, что элемент ввода текста должен динамически добавляться при загрузке данных. Но можно ли добавить элемент динамического ввода текста в загрузочную таблицу? - person Waelhi; 12.04.2015
comment
В основном, когда вы загружаете массив json.. вы знаете, какое последнее поле загружается в таблицу. - person Nishit Maheta; 12.04.2015
comment
Здесь вы хотите добавить ввод после загрузки данных в таблицу ?? - person Nishit Maheta; 12.04.2015
comment
как я могу поместить данные ID Column (из данных базы данных, также включенных в возвращенный json) для назначения в динамически добавляемом <input type=text id=id(from db)/>, используя функцию bootstrapTable, см. образец изображения: ИЗОБРАЖЕНИЕ ЗДЕСЬ - person Waelhi; 14.04.2015
comment
@Waelhi позвольте мне проверить, как передать другое значение объекта здесь - person Nishit Maheta; 14.04.2015
comment
Я думаю, вам нужно попробовать msg[index].id внутри функции форматирования? проверьте мой обновленный ответ .. может быть, это сработает - person Nishit Maheta; 14.04.2015
comment
нет. это не сработало. он отображает Loading, please wait..., и я жду около 5 минут, но он не показывает, что возвращает пустую таблицу. - person Waelhi; 14.04.2015
comment
@Waelhi, не могли бы вы проверить, что за ошибка в консоли? - person Nishit Maheta; 14.04.2015
comment
@Waelhi, можете ли вы опубликовать свой объект json или дать мне ключ для столбца идентификатора в josn - person Nishit Maheta; 14.04.2015
comment
@Waelhi проверьте мой обновленный ответ. используйте как row.id . здесь id - это имя ключа вашего поля id - person Nishit Maheta; 14.04.2015
comment
@Waelhi jsfiddle.net/e3nk137y/1286 проверьте этот пример, у меня есть значение обновления для имени первой строки с Стоимость вилок. - person Nishit Maheta; 14.04.2015
comment
Да, это работает! Благодарность! но у меня другая проблема. Не могли бы вы проверить это: SO LINK - person Waelhi; 15.04.2015
comment
@Waelhi, я добавил свой ответ на ваш вопрос. проверьте. - person Nishit Maheta; 15.04.2015

Если вы хотите вернуть/отобразить столбец в известной позиции, просто используйте следующий функциональный блок

formatter : function(value,row,index) {
   return '<input name="elementname"  value="'+value+'"/>';
 }   

Если вы хотите исключить/пропустить некоторые столбцы или хотите отобразить определенный столбец (добавьте пустые пары фигурных скобок {},{},{}, например, в зависимости от того, сколько столбцов вам нужно сдвинуть), например,

columns: [ {},{},{},  

           {
             field: 'operate',
             title: 'Item Operate',
             align: 'center',
             valign: 'middle',
             clickToSelect: false,
             formatter : function(value,row,index) {
               return '<input name="elementname"  value="'+value+'"/>';
             }
           }
         ]
person Nitin Dhomse    schedule 09.09.2015

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

formatter : function(value) {
    //value contains the current value in the cell.  whatever you return will be the new value of the cell.
       return '<input name="myinput" />';
}
person Paul Zepernick    schedule 10.04.2015