您好,我的JS功能有问题。 请帮助我,我需要这个代码直到今天,我无法理解错误:(
foreach($group as $i => $name){
print'<li onclick="groups(\'group'.$i.'\');" >'.$name.'</li>';
}
然后我有了这段代码:
$moretags = "<script>";
$moretags .= 'function groups(grid){';
foreach($group as $i => $name){
$moretags .= '
if(grid == \'group'.$i.'\'){
document.getElementById(\'show\').innerHTML = \'group'.$i.'\';
}
';
}
$moretags .= '</script>';
答案 0 :(得分:1)
执行此操作的正确方法是在PHP中创建一个数组或对象,并在客户端将所有数据传递给JavaScript。
$groups = array('some', 'elements', 'here');
然后,将其输出到您的页面:
<script>
var groups = <?php echo json_encode($groups); ?>;
</script>
然后,您可以完全访问JavaScript中的数据,而无需像现在一样动态生成脚本。您必须生成的唯一部分是变量的分配。
答案 1 :(得分:1)
我完全同意Felix Kling的说法,你不应该用PHP代码生成JavaScript代码,除非你真的知道你在做什么,你显然不知道。
由于您的问题中缺少详细信息,因此无法解决您的问题,但我会尝试至少帮助您减少错误。
你应该在你的PHP中生成的所有内容都应该是HTML标签(最多!),没有任何onclick
属性,只有class
es和一些id
s。然后只需在JavaScript中添加相关的事件处理程序(并使用一些框架,如jQuery - read this to see why),或者如果不使用JavaScript就无法使用它们,您甚至可以在JavaScript中添加HTML元素。
代码生成很难。用PHP生成JavaScript不会让你走得太远。