JavaScript + foreach PHP ...我找不到错误

时间:2012-09-30 18:55:01

标签: php javascript function foreach

您好,我的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>';

2 个答案:

答案 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不会让你走得太远。