2013-08-08 3 views
1

У меня есть программа PHP, которая выполняет серию подключений SSH с ключом (в качестве пользовательских www-данных Apache) и выполняет сценарии на удаленном сервере, которые проверяют состояния пара услуг/деамонов. На основе сообщенного статуса «Запуск» или «Остановлен» функция определяет соответствующее изображение, зеленый или красный «х», который должен отображаться в ячейке таблицы div.Возвращает «div» как динамический контент

Это выглядит следующим образом:

service status screen capture

Проблема 9 серверов опрашивается и 18 ДИВ ячейки таблицы динамически построены. Я хотел бы обновить/отобразить каждый div, поскольку данные возвращаются с каждого вызова SSH.

Это PHP-код, где каждый SSH вызов сделал DIV, содержащий результат вставляется:

  $cmd_string=buildServiceCallString($distIP, "VolCreationService","serviceCheck"); 

      echo "<div class=\"statTableRow\">"; 
     echo "<div class=\"statData statTableCell\">"; 
      $cmd_output=shell_exec($cmd_string); 
      echo "<span class=\"serviceTitle\">VolCreationService: <img class=\"runStatImage\" src=\"".displayRunStatusImage($cmd_output)."\"></span>"; 
      $cmd_output=""; 
        echo "</div>"; //end statTableCell 
        echo "</div>"; //end statTableRow 

Я сделал усилие, чтобы понять метод JQuery .load(), но hasn» t еще не нажал. Я предполагаю, что это будет связано с обратным вызовом, но я не понимаю, как элемент доступен и отображается с асинхронным вызовом.

Любые советы приветствуются!

-tu

ответ

2

Так очень простой пример того, как динамически добавлять содержание в DOM элемента. Вы можете использовать $ .ajax

var request = $.ajax({ 
     type: "POST", 
     url: "example.php", 
     data: data_obj, 
     dataType: "html" 
    }).done(function(msg) { 
     $("#example_element").append(msg); 
     } 

url: будет указывать на ваш файл.

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

DATATYPE: указывает, что тип возвращаемого вы ожидаете

в .done простейшего, что вы можете сделать, чтобы загрузить содержимое просто приложить его к чему-то (или заменить, но в вашем случае, вы, вероятно, хотите, чтобы добавить его) ,

Обратите внимание, что этот вызов не проверяет наличие ошибок.

The documentation is pretty verbose but you should still read it if you plan on using AJAX calls.

+0

Я до сих пор полностью потерял здесь ... Кажется, что скрипт запускается после загрузки все. Подхожу ли я к этому неправильно? Я хотел бы загрузить ячейку страницы по ячейке, поскольку информация возвращается из вызова ssh ... –

+1

Предположим, у вас есть div с именем example_element. То, что этот вызов будет делать, - это перейти к файлу php с именем example.php и ожидать, что возвращаемое значение будет html. Как только вызов AJAX будет завершен, некоторая часть вызова затем добавит любое значение html example.php, возвращенное в элемент div с именем example_element. – AlexLordThorsen

+0

Ваш php-скрипт возвращает свои данные после завершения каждого сеанса ssh? – AlexLordThorsen

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