-1

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

2 回答 2

1

正确的方法是在 PHP 中创建一个数组或对象,其中包含您需要传递给客户端 JavaScript 的所有数据。

$groups = array('some', 'elements', 'here');

然后,将其输出到您的页面:

<script>
    var groups = <?php echo json_encode($groups); ?>;
</script>

然后,您可以完全访问 JavaScript 中的数据,而不必像现在这样动态生成脚本。您必须生成的唯一部分是变量的分配。

于 2012-09-30T19:06:57.050 回答
1

我完全同意 Felix Kling 的观点,除非您真的知道自己在做什么,否则您不应该使用 PHP 代码生成 JavaScript 代码,而您显然不知道。

由于您的问题缺乏详细信息,因此无法解决您的问题,但我会尽力帮助您至少使您的代码不易出错。

您应该在 PHP 中生成的所有内容应该是没有任何onclick属性的 HTML 标记(最多!),只有classes 和一些ids。然后只需在 JavaScript 中添加相关的事件处理程序(并使用一些框架,如 jQuery -阅读此内容以了解原因),或者您甚至可以在 JavaScript 中添加 HTML 元素,如果它们无论如何都不能在没有 JavaScript 的情况下使用。

代码生成是一件困难的事情。在 PHP 中生成 JavaScript 不会让你走得太远。

于 2012-09-30T19:07:21.027 回答