-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

これを行う適切な方法は、クライアント側で JavaScript に渡す必要があるすべてのデータを含む配列またはオブジェクトを PHP で作成することです。

$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 といくつかidの s だけです。次に、関連するイベント ハンドラーを JavaScript に追加するだけです (そして、jQuery などのフレームワークを使用します -理由についてはこちらをお読みください)。JavaScript なしでは HTML 要素を使用できない場合は、JavaScript に HTML 要素を追加することもできます。

コード生成は難しいものです。PHP で JavaScript を生成しても、たいしたことはありません。

于 2012-09-30T19:07:21.027 に答える