我正在尝试构建一个小型应用程序,我们的编辑可以在其中选择在打印页面时隐藏某些元素,在本例中为作业名称。
但是,我似乎无法让 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/