javascriptとPHPのループ内での連想配列、クリックイベントの話

phpの配列を作成

$array = array(
	0=>	array('id'=>'1','class'=>'a'),
	1=>	array('id'=>'2','class'=>'b')
);

phpファイルに記載する場合のコード

<script type="text/javascript">

$(function(){
  <?php foreach ($array as $value){  ?>
	$('.<?php echo $value["class"]; ?>').on("click",function(){

                //.aがクリックされた時 .aのテキストを取得 又は
         //.bがクリックされた時 .bのテキストを取得
		$('.<?php echo $value["class"]; ?>').text();

	});
  <?php } ?>
});

</script>

jsを外部ファイルにしたい場合

<?php
$result=json_encode($array);
?>

<script type="text/javascript">

var result=JSON.parse('<?php echo $result; ?>');
</script>

上記をphpファイルに記述、下記をjs外部ファイルに記述する

<script type="text/javascript">

$(function(){
	for (var i = 0, len = result.length; i < len; i++) {
		(function () {
			var val = '.'+result[i]["class"];
		    $(val).click(function(){

                        //.aがクリックされた時 .aのテキストを取得 又は
                 //.bがクリックされた時 .bのテキストを取得
                        $(val).text();

		    });
		})(i);
	}
});

</script>

シェアする

  • このエントリーをはてなブックマークに追加

フォローする