从php代码创建一个cytoscape树

时间:2012-11-28 10:36:37

标签: php javascript xml yii cytoscape-web

我正在尝试使用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 个答案:

答案 0 :(得分:0)

直接在JS中编写的XML字符串使用反斜杠来保护行尾。您的PHP代码也会输出反斜杠,但后面没有回车符。因此,要么在每个"\n"之后插入"\\",要么从PHP代码中删除每个"\\"

建议:当出现问题时,还要在浏览器中查看页面的HTML源代码。这个错误在那里应该很明显。并学习使用Web浏览器的JS控制台(例如在Chrome和Opera中,Ctrl-Shift-i打开带有错误面板的开发人员工具栏)。