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

时间:2016-06-22 17:57:06

标签: 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']; ?>没有给出任何结果。我在php中使用相同的$row['name']来为复选框生成正确的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

2 个答案:

答案 0 :(得分:2)

这只是一个字符串:

'input#src'

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

'input#' + src

我也怀疑这可能不正确:

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

虽然您确实应查看实际的客户端代码以进行确认。但如果值只是一个字符串,那么我怀疑你需要json_encode。但你肯定需要引用围绕一个字符串:

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

答案 1 :(得分:1)

所有checbox改变的原因是:

$('.tohide').removeClass('bold noprint');

所有复选框都与“.tohide”表达式匹配。

您需要改为$('.tohide.'+this.id).removeClass('bold noprint')

免责声明:未经测试,因为您没有提供有效的HTML,这是一个HTML / JS问题。 PHP部分无关紧要。