在同一页面上打印具有相同功能的数组中的不同内容

时间:2011-05-22 10:25:48

标签: php arrays oop function echo

我想知道是否有可能在一个类中有一个函数,你在同一页面上调用,但它需要从数组中回显不同的东西。

我的意思是:

如果这是我的阵列:

| Day | Comment |
|-----|---------|
|  1  |  hallo  |
|-----|---------|
|  2  |  hey    |
|-----|---------|
|  3  |  hello  |
|_____|_________|

如果我点击第1天,那么应该出现数组中= day = 1的内容,如果我点击第2天,则应该出现第2天的内容。

是否可以创建一个函数来执行此操作,并且我可以在具有相同功能的同一页面上进行回显。 像:

--------------------------------------------
|   <div id="day1"> content day 1 </div>   |
|   <div id="day1"> content day 2 </div>   |
|   <div id="day1"> content day 3 </div>   |
--------------------------------------------

1 个答案:

答案 0 :(得分:0)

是的,如果你使用JQuery是可能的,但这看起来像是一个中间解决方案,所以我会尽力解释。您可以参考下面的代码并将它们放在与PHP相同的页面中。

1)首先在标题中加载Jquery,假设您的数组变量名为myarray

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>

2)最好在页面顶部添加以下脚本部分。

<script type="text/javascript">
   $('#day1').click(function(){
      $(this).html(myarray[0]);
   });

   $('#day1').click(function(){
      $(this).html(myarray[1]);
   });

   $('#day1').click(function(){
      $(this).html(myarray[2]);
   });
</script>

3)代码的解释,Jquery通过查找任何元素的idclass并执行某些操作来工作。当用户单击或执行操作时(在您的情况下,我会假设通过单击div)Jquery将参考上面的脚本并查看它是否与任何div的id匹配。如果找到匹配项,它将触发单击功能并执行任务。

4)$(this).html是一个在div的内容之间显示html或文本的函数,在这种情况下,这将是你的数组的值。 this表示用户点击的元素,并根据id名称而变化。

尝试一下,你会对Jquery可以做的事情留下深刻的印象,很快你会沉迷于它。 :)干杯!

5)一个更可重用且动态的函数,它将裁剪id's名称,以便在添加更多数据时选择数组。

在div html代码中,请为所有div添加一个类,如下所示。

<div class='onClickLoadArray' id='day1'></div>

<script type="text/javascript">

   $('.onClickLoadArray').click(function(){
      var tmpArrayCount = ($(this).attr('id').replace('day', ''))-1;
      $(this).html(myarray[tmpArrayCount]);
   });

</script>

我还没有对此进行测试,但这应该可行,它会将div的id删除为数字然后减1,因为数组以0开头。然后将数组的值加载到单击它的div中。