【问题标题】:Change empty cell bgcolor onclick in php [duplicate]在php中更改空单元格bgcolor onclick [重复]
【发布时间】:2014-02-05 09:54:12
【问题描述】:

我刚开始使用 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 变为灰色。但是当我再次点击它时,什么也没有发生。 请帮忙!谢谢!

【问题讨论】:

  • PHP 是一种服务器端语言。您不能从 JavaScript 调用 php 函数。

标签: javascript php html html-table


【解决方案1】:

你有混合的服务器端代码 (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>

注意:代码未经测试,但说明了执行方式。

【讨论】:

  • 我将其中的一部分更改为“element.style.backgroundColor”以使其正常工作。但是,我仍然遇到它在第一次单击时有效的问题,但在我第二次单击单元格时却没有。
  • 我已经编辑了代码以使用 JQuery,这是一个用于客户端编程的 JS 框架。如果您以前没有使用 JS 进行网页编程的经验,那么使用此库将对您有所帮助。您可以通过在 HTML 中添加此标记来使用它
【解决方案2】:

您不能直接使用 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";

      }
   }

【讨论】:

    猜你喜欢
    • 2017-06-24
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    相关资源
    最近更新 更多