javascript - 将变量从 php 传递到 javascript 以用作 ID

标签 javascript php

我正在尝试构建一个小型应用程序,我们的编辑可以在其中选择在打印页面时隐藏某些元素,在本例中为作业名称。

但是,我似乎无法让 addclass 正常工作。它要么不执行任何操作,要么将类添加到每个复选框。

为了给我的复选框一个唯一的 ID,我使用作业名称作为 PHP 中的 ID。这些来自数据库。 输入:

<input type='checkbox' id='".$row['name']"'/><div class='tohide ".$row['name']."'>".$row['name']."</div>

Javascript:

var src = <?php echo json_encode($row['name']); ?>;
  $('input#src').change(function(){
    if(this.checked){
      $('.tohide').addClass('bold noprint');
    }else{
      $('.tohide').removeClass('bold noprint');
    }
  })

我注意到 <?php echo json_encode($row['name']); ?><?php echo $row['name']; ?>不要给出任何结果。我正在使用相同的 $row['name']在 php 中为复选框生成正确的 ID。

客户端代码:

<script type="text/javascript">
      var src = "";
      $('input#'+ src).change(function(){
        if(this.checked){
          $('.tohide').addClass('bold noprint');
        }
        else {
          $('.tohide').removeClass('bold noprint');
        }
      })
    </script>

使用 json_encode 时我确实得到了一个 null 值

最佳答案

这只是一个字符串:

'input#src'

它不会在字符串中插入变量名,它只是一个文字字符串。要使用 src 变量,请将其连接起来:

'input#' + src

我也怀疑这可能是不正确的:

var src = <?php echo json_encode($row['name']); ?>;

尽管您确实应该查看实际的客户端代码以确认。但是,如果该值只是一个字符串,那么我怀疑您是否需要 json_encode。但是您肯定需要在字符串周围使用引号:

var src = '<?php echo $row['name']; ?>';

关于javascript - 将变量从 php 传递到 javascript 以用作 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37975158/

相关文章:

php - Jquery 翻盖脚本未在翻盖背面显示独特内容

javascript - 传入对象和数组变量

javascript - Vanilla JavaScript - 将类添加到具有特定数据属性的元素的语法

Javascript 对多语言的排序支持

php - 单个表单提交的 if 语句中单个字段的多个更新查询

javascript - laravel 中的 ajax 重新加载一个空白页面

javascript - Polymer 2 铁选择器选择的元素在 dom 更改元素顺序后不会更新

javascript - jQuery 更改输入值并将其显示为文本

php - 如何从关联数组构建多级菜单。

php - 在 HTML/PHP 中显示 MySQL 表时出现问题