使用php,我打印了一个<script>
标记和一些JavaScript行。它发挥了应有的作用。我正在打印的脚本包括从我正在使用的库中生成一些对象。然而,当我根据某些条件想要这样做时,在这种情况下,for循环我无法使其工作。
这是我第一次尝试的代码:
<?php
$teacher1 = "teacher1";
echo "
<canvas id='"lienzoGrafo'" width='"800'" height='"600'"></canvas>
<script languaje='"javascript'" type='"text/javascript'" charset='"UTF-8'">
var grafo = arbor.ParticleSystem({repulsion: 3000, friction:.1, stiffnes:900, gravity:true});
grafo.renderer = Renderer('#lienzoGrafo')
var teacher1 = grafo.addNode('"$teacher1'",{color:'blue',width:100, shape:'dot',label:'"$teacher1'"})
从最后一行代码中可以看出,我实际上使用了一个php变量来完成脚本打印。
然而,当我试图用一个循环来完成这个循环时,我无法让它发挥作用。
这就是我尝试过的:
<?php
$teacher1 = "teacher1";
echo "
<canvas id='"lienzoGrafo'" width='"800'" height='"600'"></canvas>
<script languaje='"javascript'" type='"text/javascript'" charset='"UTF-8'">
var grafo = arbor.ParticleSystem({repulsion: 3000, friction:.1, stiffnes:900, gravity:true});
grafo.renderer = Renderer('"#lienzoGrafo'")";
for ($i=0; $i < 5; $i++) {
echo "grafo.addNode('"teacher'".$i,{color:'blue',width:100, shape:'dot',label:'"teacher'".$i})";
}
echo "</script>";
?>
但我什么都做不到,浏览器控制台输出:
Uncaught SyntaxError: Unexpected identifier localhost/:19
但是我的index.php
在第19行有</html>
标签。
我认为问题是html脚本语句被一起呈现
grafo.renderer = Renderer("#lienzoGrafo")grafo.addNode("teacher0",{color:'blue',width:100, shape:'dot',label:"teacher0"})grafo.addNode("teacher1",{color:'blue',width:100, shape:'dot',label:"teacher1"})grafo.addNode("teacher2",{color:'blue',width:100, shape:'dot',label:"teacher2"})grafo.addNode("teacher3",{color:'blue',width:100, shape:'dot',label:"teacher3"})grafo.addNode("teacher4",{color:'blue',width:100, shape:'dot',label:"teacher4"})</script>
在for循环中更改此行。。。
echo "grafo.addNode('"teacher" . $i . "'",{color:'blue',width:100, shape:'dot',label:'"teacher" . $i . "'"})";
echo "grafo.addNode('"teacher$i'",{color:'blue' etc...
^^---note the position
正如所写的,您的PHP代码正在生成
grafo.addNode("teacher"7,{color:etc....
^---syntax error
当我意识到渲染的html包含JavaScripts语句时,我只是在JavaScript语句中添加了一个分号(;
)
grafo.renderer = Renderer('"#lienzoGrafo'");";
和
echo "grafo.addNode('"teacher" . $i . "'",{color:'blue',width:50, shape:'dot',label:'"teacher" . $i . "'"});";
成功了!
我的学习
- 始终查找
html
php
生成的- 不使用分号结束Script语句并不总是一个好主意
- 只有在绝对必要的时候才使用php