Создать cytoscape дерево из кода php

Я пытаюсь показать результаты запроса с графиком, используя Cytoscape. Я не специалист по javascript, так что, может быть, это просто синтаксическая ошибка, может кто-нибудь взглянуть на мой код?

 <script type="text/javascript">
        window.onload = function() {
            // id of Cytoscape Web container div
            var div_id = "cytoscapeweb";

            // NOTE: - the attributes on nodes and edges
            //       - it also has directed edges, which will automatically display edge arrows
            var xml = '\
            <graphml>\
              <key id="label" for="all" attr.name="label" attr.type="string"/>\
              <key id="weight" for="node" attr.name="weight" attr.type="double"/>\
              <graph edgedefault="directed">\
                <node id="1">\
                    <?php echo "<data key=\"label\">$prot</data>\\\n";?>
                    <data key="weight">2.0</data>\
        </node>
    <?php $count=2;?>
    <?php  while($row = mysql_fetch_array($result)){
        echo "<node id=\"$count\">\\";                    
        echo "<data key=\"label\">$row['interactor']</data>\\";
                    echo "<data key=\"weight\">1.0</data>\\";
                echo "</node>\\";
                echo "<edge source="1" target=\"$count\">\\";
                    echo "<data key=\"label\">$prot to $row['interactor']</data>\\";
                echo "</edge>\\";
        $count++;
    }?>
              </graph>\
            </graphml>\
            ';

1 ответ

XML-строка, написанная непосредственно в JS, использует обратную косую черту для защиты конца строк. Ваш PHP-код также выводит обратную косую черту, но за ней не следует возврат каретки. Так что либо вы вставляете "\n" после каждого "\\"Либо ты удаляешь каждый "\\" из вашего кода PHP.

Совет: если что-то пойдет не так, также посмотрите исходный код HTML страницы в вашем браузере. Эта ошибка должна быть очевидна там. И научитесь использовать консоли JS веб-браузеров (например, внутри Chrome и Opera, Ctrl-Shift-i открывает панель инструментов разработчика с панелью ошибок).

Другие вопросы по тегам