HTML-страница с ajax, похоже, не может реализовать RGraph

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

menu01 - menu01.php содержит php-код с некоторыми результатами Mysql, это работает нормально. Я думаю, что это работает нормально, потому что это все текстовый вывод.

menu02 - Menu02.php содержит html-код для отображения RGraph, некоторый текст отображается в правом DIV, но график не отображается. Файл menu02.php отображается нормально, когда я вызываю этот файл напрямую.

Я понял, что вывод RGraph из файла php не является данными xml, которые я могу использовать для обновления правого DIV страницы. ajax только подозревает, что получает какой-то текст, верно? Поэтому я должен найти другой способ динамически обновлять мою страницу и показывать разные вещи в правильном DIV, не перезагружая всю мою страницу. С этой информацией я думаю, что знаю, почему это не работает, но я не знаю, как получить результат, который я ищу. Кто-нибудь знает, где искать?

Фрагменты кода:

index.html :

    <script src="./js/ajax.js"></script>

 <section id="sidebar">
     <nav>
      <ul>
        <li>  <button onclick="goto_menu1()">Menu 1</button> </li>
        <li>  <button onclick="goto_menu2()">Menu 2</button> </li>
      </ul>
     </nav>
 </section>

ajax.js:

 function goto_menu1()
    {
      var xmlHttp = getXMLHttp();
      xmlHttp.onreadystatechange = function()
      {
        if(xmlHttp.readyState == 4)
        {
          HandleResponse(xmlHttp.responseText);
        }
      }
      xmlHttp.open("GET", "./menu01/menu01.php", true);
      xmlHttp.send(null);
    }

 function goto_menu2()
    {
      var xmlHttp = getXMLHttp();
      xmlHttp.onreadystatechange = function()
      {
        if(xmlHttp.readyState == 4)
        {
          HandleResponse(xmlHttp.responseText);
        }
      }
      xmlHttp.open("GET", "./menu02/menu02.php", true);
      xmlHttp.send(null);
    }

person Gaston    schedule 23.03.2013    source источник
comment
Кажется, я нашел недостающую часть. Я должен использовать iframe для загрузки правой стороны моей страницы, верно? У меня это работает, но я не уверен, что это лучшее решение   -  person Gaston    schedule 25.03.2013
comment
Хм, iframe — это быстрое решение моей проблемы прямо сейчас, но я не думаю, что это лучший выбор.   -  person Gaston    schedule 25.03.2013


Ответы (1)


В конце концов, все дело было в том, чтобы загрузить правильный js на нужные страницы. И вызов правильного кода jquery для rgraph.

Поскольку у меня были сомнения по поводу загрузки RGraph (или другого модуля js) в динамически созданный div, теперь я заставил его работать. Как?

index.html :
load js rgraph module
call a js function for updating div

js function:
open a php page, generate data and set up the html layout
next, check-document-ready, run jquery rgraph call

Я надеюсь, что это дает некоторую надежду тем, у кого есть такой же поиск :)

person Gaston    schedule 25.03.2013