2015-07-29 2 views
4

Я хочу обновить мобильную сетку. У меня есть несколько столбцов с раскрывающимся списком, заполненным данными моей базы данных. Но на моей странице у меня есть первая сетка, которая вставляет данные в эту базу данных, и я получаю их в своей второй сетке. Но поскольку моя вторая сетка не обновляется, я не могу получить последнее значение, которое я просто вставляю в первую сетку.Обновить handsontable

Итак, как я могу обновить содержимое мобильного телефона, пожалуйста?

EDIT:

Я сделал jsfiddle, которые иллюстрируют мою проблему: http://jsfiddle.net/9onuhpn7/10/ На моем jsFiddle, это работает, и я могу получить значение, когда я толкаю их в массиве. Но с моим настоящим приложением и с базой данных это не работает.

Так вместо массива, у меня есть это в моем коде (он работает, но он не обновляется):

columns:[ 
<?php 

    $conn_string = "host=localhost port=5432 dbname=test_postgre user=postgres password='1234'"; 
    $dbconn = pg_connect($conn_string); 

    $sql = "SELECT ".$colonne." FROM public.".$tablevar.""; 
    $res = pg_query($sql) or die("Pb avec la requete: $sql"); 

    $data = pg_fetch_all($res); 

    $indexedOnly = array(); 

    foreach ($data as $row) { 
       $indexedOnly[] = array_values($row); 
    } 
    echo '{type:\'dropdown\','; 
    echo 'source:'.json_encode($indexedOnly).'},'; 



?>] 
+0

Я думаю, что mpusarla имеет смысл. не могли бы вы просто стать jsfiddle? я не уверен, что понимаю, что вы просите – ZekeDroid

+0

@ZekeDroid. Я редактировал свой пост. – Erlaunis

ответ

0

Попробуйте установить опцию observeChanges в действительности. Это должно обнаружить изменения в источнике данных и снова отобразить сетку.

https://github.com/handsontable/handsontable/wiki/Options#constructor-options

+0

Он не работает, даже если это похоже на то, что я ищу. – Erlaunis

+0

У меня есть этот код, вы видите, где я делаю неправильно? вар горячий = новый Handsontable (контейнер, { \t данные: data_parcelle_elementaire, \t stretchH: 'всех', \t minSpareRows: 1, \t observeChanges: правда, \t rowHeaders: ложный, \t colHeaders: ложь, \t ContextMenu : true, \t height: 550, – Erlaunis

+0

Вы можете попробовать установить ColumnSorting в true. По умолчанию функция наблюденияСм. имеет значение false, но установка ColumnSorting в true будет включать функции наблюдения. – mpusarla

1

я получаю сейчас. Вы хотите динамически обновлять источники для выпадающих меню. Это должно быть легко с помощью следующего кода:

hot2.updateSettings({ 
    columns: [{ 
     type: 'dropdown', 
     source: arrayTest 
    }] 
}) 

Убедитесь, чтобы добавить это после того, как arrayTest имеет новые значения, и вы должны быть установлены, чтобы идти. Вот ваш fiddle с линией, добавленной в нужном месте.

+0

Спасибо, но я нашел, что не так. Когда я получаю данные из базы данных с запросом sql, даже если я обновляю горячий, запрос не выполняется дважды. Поэтому мне пришлось создать массив с данными, как в скрипке. И это работает сейчас. – Erlaunis

5

Просто позвоните hot.render();, где hot относится к объекту Handsontable.

Работал отлично для меня.

Смежные вопросы