В agiletoolkit у меня отображается набор представлений, а в представлении я установил для внешнего div значение id=
1 <div id='<?$_name?>' class='taskrow'>
2 <div class=fleft nomargin>
3 <?$Story?>
4 </div>
5 <div class='container'>
6 <div id='<?$workspace?>' class='workspace'>
..
34 </div>
На странице у меня есть цикл foreach, который извлекает данные из mysql и добавляет их на страницу. В то же время он сохраняет результат $p->add в массиве, используя идентификатор в качестве ключа.
foreach ($st as $row) {
if (is_array($row)) {
$storyid=$row[0];
$scrumrow[$storyid]=$p->add('View_StoryRow')
->setWorkspace('ws-'.$storyid);
Когда выполняется действие (перетаскивание элемента на экран), я обновляю страницу, и блок get применяет некоторые обновления к базе данных. Затем у меня есть следующий код для обновления представления (это строка, в которой было выполнено действие)
if($_GET['task'] && $_GET['status'])
{
.. do database updates here ..
$js[]=$scrumrow[$ajaxstory]->js()->reload();
// $js[]=$p->js()->reload(array('member'=>$member, 'sprint'=>$sprint));
$this->js(null,$js)->execute();
}
Если я закомментирую строку $scrumrow[$ajaxstory] и использую закомментированную строку для обновления всей страницы, это сработает, но очень медленно (около 12 секунд), так как на экране много данных, но при попытке обновить только просмотра, я получаю сообщение об ошибке, как в заголовке: «Невозможно вырезать объект с именем ... Он не был инициализирован.
Обновления выполняются в базе данных, поэтому, если я обновляю страницу вручную, она работает, и ошибка появляется вместо строки, которую я хочу обновить, и дает правильное имя строки (как видно из идентификатора с использованием firebug), но что я пропустил? Как инициализировать объекты, которые уже есть на странице?