在php中更改空单元格bgcolor onclick

时间:2014-02-05 09:54:12

标签: javascript php html html-table

我刚开始用PHP,我有一个空单元格的表。我想在用户点击它时更改每个单元格的颜色。到目前为止,我有以下代码:

我的HTML /我如何调用该功能:
<td onclick="javascript: this.style.backgroundColor='<?php toggleColor(); ?>'"></td>

我的功能:

function toggleColor(){
    global $bgcolor;
    if($bgcolor == 'white'){
        echo "#2E2E2E";
        $bgcolor = 'gray';
    }
    else if ($bgcolor == 'gray'){
        echo "#2E2E2E";
        $bgcolor = 'white';             
    }
    else {
        echo "#2E2E2E";
        $bgcolor = 'white';
    }
}

现在发生的是,单元格onclick变为灰色。但是当我再次点击它时,没有任何反应。 请帮忙!谢谢!

2 个答案:

答案 0 :(得分:1)

Ya有混合服务器端代码(php)和客户端代码(js)。 php代码仅在呈现页面之前在服务器上执行。一旦进入浏览器(客户端),只有javascript代码可以工作。您应该更改JavaScript代码,现在您只设置背景颜色,但是您无法控制如何在客户端上切换回白色:

<script type="text/javascript">
    $(document).ready(function(){
       $('#my-table').on('click', function(){
           $(element).toggleClass('bg-grey');
       });
    });
</script>
<table id="my-table">
    <td onclick="toggleBackground(this)"></td>
</table>

注意:代码尚未经过测试,但是说明了这种做法。

答案 1 :(得分:0)

你不能直接使用javascript调用php函数。所以你需要在javascript中定义php函数。我已经更新了js函数,如下所示。

  var bgcolor;
  function toggleColor(){

      if(bgcolor == 'white'){

        bgcolor = 'gray';
        return "#2E2E2E";
      }
      else if (bgcolor == 'gray') {

        bgcolor = 'white';             
        return "#2E2E2E";
      }
      else {
         bgcolor = 'white';
         return "#2E2E2E";

      }
   }